Cos è BitTorrent? BitTorrent. Definizioni II. Definizioni



Documenti analoghi
Il protocollo BitTorrent

Algoritmi per protocolli peer-to-peer

Felice Colucci. Felice Colucci, Il protocollo BitTorrent Cagliari, 26 Novembre 2005

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

Contesto: Peer to Peer

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Reti di Telecomunicazione Lezione 8

La sicurezza nel Web

Domande e risposte su Avira ProActiv Community

Software per Helpdesk

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

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

Alfa Layer S.r.l. Via Caboto, Torino ALFA PORTAL

Approfondimento di Marco Mulas

Creare una Rete Locale Lezione n. 1

Gestione della memoria centrale

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo.

B+Trees. Introduzione

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING

Protocolli di Comunicazione

COME CREARE UNA COMUNICAZIONE / NEWSLETTER

Lo scenario: la definizione di Internet

esales Forza Ordini per Abbigliamento

Strutturazione logica dei dati: i file

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A

Inizializzazione degli Host. BOOTP e DHCP

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

SSL: applicazioni telematiche SSL SSL SSL. E-commerce Trading on-line Internet banking... Secure Socket Layer

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

Technical Document Release Version 1.0. Product Sheet. MediaSpot. Creazione e gestione palinsesto pubblicitario

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

Reti di Calcolatori. Il Livello delle Applicazioni

DATA BASE ON LINE (BANCA DATI MODULI SPERIMENTALI)

istruzioni per l uso

MODELLISTICA DI IMPIANTI E SISTEMI 2

Il web server Apache Lezione n. 3. Introduzione

Progetto PI , passo A.1 versione del 14 febbraio 2007

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

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

PORTALE CLIENTI Manuale utente

Sistemi Operativi. 5 Gestione della memoria

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

La Videosorveglianza Criteri per il dimensionamento dello storage

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

Il nuovo browser italiano dedicato alla navigazione e comunicazione sicura in internet per bambini

P2P. File sharing (condivisione di file) tra computer gestiti da persone come noi. Si condividono canzoni, film, programmi, immagini, ecc..

Capitolo 25: Lo scambio nel mercato delle assicurazioni

La memoria - generalità

Cosa sono i corsi di aggiornamento?

PkBox Client Smart API

Il funzionamento di prezzipazzi, registrazione e meccanismi

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Hardware delle reti LAN

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing

InitZero s.r.l. Via P. Calamandrei, Arezzo

Manuale Utente Albo Pretorio GA

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

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

Il fenomeno della geolocalizzazione. Ugo Benini

Coordinazione Distribuita

Internet e il World Wide Web. Informatica di Base A -- Rossano Gaeta 1

Il mercato di monopolio

Università degli Studi di Messina

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

I motori di ricerca. Che cosa sono. Stefania Marrara Corso di Sistemi Informativi

Premessa Le indicazioni seguenti sono parzialmente tratte da Wikipedia ( e da un tutorial di Pierlauro Sciarelli su comefare.

Parte II: Reti di calcolatori Lezione 11

Internet Access Monitor. Informazioni sul prodotto

Primi passi in Moodle

PLIDA Progetto Lingua Italiana Dante Alighieri Certificazione di competenza in lingua italiana

Guida di Pro Spam Remove

Manuale Utente Amministrazione Trasparente GA

GUIDA PER IL DOCENTE ALL UTILIZZO DELL APPLICATIVO ONLINE E PORTFOLIO

Scuola Superiore Sant Anna. Progetto parte Unix. AA : Distributed File Repository

Utilizzo di Certificati SSL e relative implicazioni

Manuale servizio ScambioDati

Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1

MOCA. Modulo Candidatura. [Manuale versione 1.0 marzo 2013]

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

REGOLE PER L ESAME (agg.te settembre 2015)

Progettare un Firewall

PROMUOVERSI MEDIANTE INTERNET di Riccardo Polesel. 1. Promuovere il vostro business: scrivere e gestire i contenuti online» 15

Sistema operativo: Gestione della memoria

Sistemi centralizzati e distribuiti

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Reti di calcolatori ed indirizzi IP

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

OpenPsy: OpenSource nella Psicologia. Presentazione del progetto in occasione dell edizione 2004 del Webbit (Padova)

IL SUO NOME SEMPRE IN PRIMO PIANO Aderendo ad uno dei nostri prodotti/servizi il suo nome sarà sempre in evidenza e nelle prime posizioni;

AEMcom Peer2Peer - Windows

IL CICLO DI VITA DEL PROGETTO. Elementi essenziali di progetto. Fasi e tappe Gli Approcci

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

P A D. Private A Distanza.

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Un sistema operativo è un insieme di programmi che consentono ad un utente di

da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti

Rapporto dal Questionari Insegnanti

1) GESTIONE DELLE POSTAZIONI REMOTE

Realizzazione di una chat su protocollo HTTP

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Transcript:

Cos è BitTorrent? Davide Chiarella BitTorrent Corso di Sistemi Distribuiti P2P a.a. 2005/2006 BitTorrent è un sistema per la distribuzione e condivisione di file. Scritto in Python da Bram Cohen, presentato al CodeCon nel 2002: il software è completamente free e open source. Cerca di combattere il fenomeno del free-riding, implementando all interno dei suoi algoritmi una strategia tit-for-tat. E uno dei sistemi P2P più diffusi ed è responsabile di almeno il 35% del traffico internet (fonte CacheLogic). Nasce dall ultima esperienza lavorativa di Bram in un azienda, dove si conservavano i file dei progetti divisi in parti crittografate, distribuite fra vari computer. Pensa di adattare l idea al P2P.Il successo fu enorme: a dicembre del 2005 i download del software arrivarono a 40 milioni. Definizioni Definizioni II Le definizioni che seguono si possono ritenere una convenzione all interno di questo documento (alcune sono anche adottate universalmente). peer e client: un peer è un qualsiasi BitTorrent client che partecipa alla diffusione del file; quando ci riferiamo a client intendiamo un peer residente sulla macchina locale seeder: un peer che possiede tutte le parti di un file leecher : un peer che possiede qualche o nessuna parte di un file e cerca il completamento del file tracker: entità intermedia che informa il client dei peer connessi al torrent torrent: file che contiene l URL del tracker e le hash SHA1 delle parti del file da scaricare swarm: insieme di tutti i peer (compreso il client) che formano il torrent parte e blocco: un file nel protocollo BitTorrent è diviso in parti, che a loro volta sono divise in sottoparti chiamate blocchi ottimo paretiano o efficienza paretiana: si realizza l ottimo paretiano quando l allocazione delle risorse è tale che non è possibile migliorare la condizione di un soggetto senza peggiorare la condizione di un altro

Definizioni III La genesi I bencode: è un modo di specificare e organizzare i dati, supporta i tipi di dati: stringhe <lunghezza>:<stringa> (e.g. 4:spam è la stringa spam) interi i<intero>e (e.g. i3e è l intero 3) liste l<tipo bencode>e dizionari d<stringa bencode><tipo bencode>e screen scraping: attualmente è l atto di parsare pagine HTML per ottenere dati/informazioni contenute in esse soffocare una connessione: quando si soffoca una connessione non vengono trasferiti più parti e blocchi, ma solo dati di controllo della connessione, che viene tenuta aperta Scenario: distribuzione di file di grandi dimensioni 1 problema: tutto il carico del trasferimento del file risiede sulla macchina che lo ospita (client) 2 problema: la maggioranza delle linee degli utenti dei sistemi P2P sono linee asimmetriche (più banda dedicata al download che all upload), quindi anche nel caso di due utenti con la stessa connessione (ad esempio 4 Mbit/s di downlink e 600Kbit/s di uplink) essi, anche volendo cooperare, non potranno mai scaricare con tutta la loro banda di download disponibile, perché l uplink del loro partner risulta il bottleneck La genesi II BitTorrent: schema idea principale: redistribuire il carico dell upload su tutti i computer che concorrono allo scaricamento del file. Una volta che un utente ha parte del file incomincia lui stesso a fornire quella parte agli altri utenti, alleggerendo il carico del detentore del file completo (seeder) e permettendo così un possibile totale sfruttamento della banda di download Web server Tracker D 2Mb/ U 1Mb!!!! D 2Mb/ U 1Mb Client D 2Mb/ U 1Mb come? tu scarichi da me se io scarico da te, il vecchio do ut des

BitTorrent: interfaccia L interfaccia uomo-sistema è stata scelta il più semplice possibile. Il sistema non ha un motore di ricerca basato su metadati, ma si appoggia su siti con hyperlink a file.torrent BitTorrent: il torrent I L utente incomincia il download del file dopo aver scaricato un file.torrent contenente metadati come la lunghezza del file da scaricare, il suo nome, informazioni di hashing e l url del tracker. Il file.torrent è scritto in bencoding ed utilizza il tipo di dato dizionario. d Inizio tipo dato dizionario 8:announce Inizio sequenza di semplici stringhe di byte 35:http://books.no-ip.org/announce.php 7:comment 78:A.Practical.Guide.to.Linux.Commands.Editors.and.Shell.Programming.Jul.200 5.chm 10:created by 19:TorrentSpy/0.2.4.26 13:creation date i1147792122e 4:info d 6:length i3786069e 6:md5sum BitTorrent: il torrent II Md5sum dell intero file 32:f627b59a6148cc6e1ac1da5d74da3804 4:name 78:A.Practical.Guide.to.Linux.Commands.Editors.and.Shell.Programming.Jul.200 5.chm 12:piece length i262144e Sono parti da 256KB 6:pieces 300:zt Vaá etc etc fino a 300 caratteri 7:private i1e e e Tipo dato intero Un dizionario può contenere un altro dizionario: in caso di più file il dizionario info ha una lista di dizionari al suo interno, uno per ogni file Lunghezza intero file (bytes) Concatenazione delle hash SHA1 (20 byte ognuna => 15 parti) BitTorrent: tracker Il tracker è colui che tiene traccia di tutti gli utenti coinvolti nel torrente di bit: il tracker comunica con gli altri peer tramite http e https. Durante la loro comunicazione il client fornisce il nome del file a cui è interessato, il suo indirizzo IP, la porta su cui è in ascolto e le eventuali parti di file di cui è già in possesso. Il tracker risponde in text/plain indicandogli una lista casuale di peer. A questo punto il nuovo arrivato contatta gli altri peer e crea delle connessioni dirette con essi e incomincia a scaricare il file.

BitTorrent: tracker e seeder II BitTorrent: pubblicazione Oltre a questa funzionalità il tracker fornisce anche un servizio di monitorizzazione dello stato dei torrent chiamato scrape page, che evita al client di fare screen scraping sulla pagina HTML del tracker: ottiene subito i dati interessanti tramite HTTP GET direttamente da esso. E ovvio che almeno uno dei peer deve avere il file completo e fornire della banda di upload agli altri utenti: questo benefattore viene chiamato seeder. Ma come avviene la pubblicazione di un file da parte di un seeder? Per pubblicare un torrent si utilizzano dei programmi appositi che creano il file dei metadati, riempendo tutti i campi. Una volta creato il.torrent, esso si sottomette al tracker. Ovviamente bisogna rimanere connessi con il file originale per un discreto periodo di tempo per permettere il diffondersi di almeno tutte le parti del file. Nei client che non hanno molta banda a disposizione si utilizza l algoritmo di super-seeding, per lo meno nel primo periodo di attività del torrent. BitTorrent: struttura dei file BitTorrent: selezione delle parti I BitTorrent divide i file in parti di una dimensione fissata, di solito 256 KB. Ogni frammento di file viene identificato da una funzione hash SHA1: il risultato della funzione è noto poiché pubblicato sul file.torrent. I dati vengono trasferiti tramite connessioni TCP: è importante quindi avere sempre delle richieste in coda per evitare grossi tempi d attesa tra un invio e l altro dei pezzi. Questo viene evitato suddividendo ulteriormente le parti dei file in sottoparti di 16 KB, chiamate blocchi. In pipeline vengono sempre tenute almeno 5 richieste. Ogni volta che viene ricevuta una sottoparte ne viene subito richiesta un altra agli altri membri del swarm. Selezionare le parti da inviare per prime è un compito per niente banale per ottenere una buona performance del sistema. Si potrebbe infatti arrivare ad una situazione in cui tutte le parti del file che uno offre non siano richieste dai peer da cui stiamo scaricando. A questo proposito BitTorrent applica una chiara politica di selezione delle parti dei file.

BitTorrent: selezione delle parti II BitTorrent: selezione delle parti III Si segue una rigida politica per lo scaricamento delle parti del file Strict priority (o policy): una volta che un blocco viene richiesto ad un peer tutte le future richieste a quel peer riguarderanno i restanti blocchi della parte. Questo permette di completare velocemente parti intere del file. Rarest First: quando il peer seleziona quale parte scaricare sceglie sempre quella con la minore occorrenza all interno del swarm. Questa regola permette al peer di essere concorrenziale, possedendo delle parti di file molto richieste egli può scambiarle più facilmente con altri ricevendo in cambio altre parti di file. Questo metodo risulta particolarmente utile sopratutto nel momento dell introduzione di un nuovo torrent, alleggerendo di molto il carico sul seeder originario. Random first piece: l unica eccezione alla regola del rarest first accade quando si inizia il download di un file. Infatti le parti più rare è facile che siano in possesso di pochi peer e, se si applicasse la politica RF il download risulterebbe rallentato. Per questa ragione la prima parte da scaricare viene scelta in modo casuale e solo dopo il completamento del download di questa si applica la RF Endgame mode: risulta molto utile quando il client ha un download rate basso. Nel mezzo dello scaricamento fa parte del gioco, ma sul finale può rallentare notevolmente la fine dello scaricamento. In questo caso, quando il client ha ormai richiesto tutti i blocchi mancanti, manda in broadcast a tutti i peer la richiesta e quando uno di essi risponde avvisa che la richiesta per quel blocco è scaduta. Così il finale del download risulta sempre veloce. BitTorrent: esempio end-game File diviso in 12 parti, da 10 blocchi ciascuna: esempio 5.1 il primo blocco della quinta parte del file BitTorrent: esempio end-game File diviso in 12 parti, da 10 blocchi ciascuna: esempio 5.1 il primo blocco della quinta parte del file 5.3 5.1 5! 5 11 disi.mpg 5.3 5.1 5 11 disi.mpg

BitTorrent: choking algorithm In BitTorrent ogni client cerca di massimizzare il suo download rate (dilemma del prigioniero). Cooperare = dare upload, defezionare = soffocare l upload. Il choking algorithm si occupa appunto di fare questo: cerca di raggiungere l ottimo paretiano. L atto del choking è un temporaneo rifiuto di upload: in ogni caso il download può continuare e la connessione non deve essere rinegoziata quando il soffocamento termina. Ogni client coopera (fa l unchoke) con un fissato numero di altri peer (default 4), così il problema rimane nella selezione di chi non soffocare. La decisione si basa sui vari download rate del client con i peer connessi (e.g: a quanto sto scaricando dal peer A?). BitTorrent: choking algorithm Calcolare tuttavia il download rate corrente da un peer non è un problema banale. BitTorrent calcola la media per ciascuna connessione ogni 20 secondi (nelle prime versioni dell algoritmo aveva un periodo di calcolo più lungo, ma ne risentiva l efficienza a causa dell alta variabilità della connessione TCP). Ogni dieci secondi si calcola la lista dei peer da soffocare e quelli con cui cooperare e si lascia la situazione com è fino ai dieci secondi successivi: ergo ogni dieci secondi avviene il rechoking. calcolo chi soffocare calcolo µ applico la lista di soffocamento BitTorrent: choking algorithm BitTorrent: optimistic unchoking La scelta di agire ogni dieci secondi è per evitare situazioni in cui vengono sprecate risorse a causa dell overhead di soffocamento e cooperazione (10s in termini di connessione TCP sono un tempo relativamente lungo per permettere il pieno sfruttamento del canale di comunicazione). Agendo solo in questo modo il client però non può scoprire se sul mercato c è qualcuno che può offrire più upload: è qui che entra in gioco l optimistic unchoking. Ogni tre periodi di rechoke (30s), il client BitTorrent fa una mossa di cooperazione gratuita (un TFT ritardato): in trenta secondi abbiamo una situazione abbastanza stabile, poichè l upload si è stabilizzato reciprocando il download. Questa regola viene chiamata optimistic unchoking.? client

BitTorrent: anti-snubbing BitTorrent: nuovo seeder e upload A volte però può accadere che un client venga soffocato da tutti i peer da cui sta scaricando e che esso continui comunque a fornire upload. Che accade in questa situazione? Normalmente questo evento causerebbe una drastica diminuzione, se non un annullamento, del suo download rate. Per mitigare questo problema un client che non riceve da un dato peer parti/blocchi di un file per più di un minuto soffoca subito la connessione, assumendo di essere stato snobbato dal peer in questione, e da il via ad un optimistic unchoking. Potrebbe continuare a cooperare con il peer snoob, solo se il peer risultasse essere il bersaglio dell optimistic unchoking o ricominciasse a ricevere dati da esso. Una volta che il client ha terminato lo scaricamento del file diventa da leecher un seeder: il cooperatore per eccellenza. A questo punto però il client non ha più i suoi valori di download rate su cui basare le sue scelte. Come agisce? Sceglie di fare upload ai peer più leecher : potremmo chiamare questo principio il principio di leechest first. BitTorrent: miglioramenti? Dalla versione 4 del protocollo è stata aggiunta una funzionalità più business-friendly: tutto il traffico di rete creato da BitTorrent è segnato come bulk. Questo permette a programmi di traffic-shaping di riconoscerlo abbastanza facilmente e di adottare nel caso alcune precauzioni (saturazione della banda a causa di molti download e degradamento delle prestazioni). Un punto debole nell architettura di BitTorrent è il tracker, se il tracker viene attaccato o, molto più semplicemente, si rompe tutti i file che riferivano a lui vengono persi. Per questo motivo dalla versione 4.1 in poi è stata prevista la funzionalità di un tracker decentralizzato (trackerless mode): la soluzione è basata su una DHT, in particolare sul protocollo Kademlia, un evoluzione di Chord. Tuttavia solo alcuni client supportano il trackerless mode (Azureus e BitTorrent). BitTorrent: strategie II Com è meglio scaricare i torrent? Supponiamo di aver alcuni documenti con nome da A a Z e di doverne scaricare una parte. Possiamo avere vari scenari. I file sono contenuti ognuno in un torrent. Due strategie possibili: MTCD (Multi-Torrent Concurrent Downloading): situazione in cui il client scarica più torrent nello stesso momento MTSD (Multi-Torrent Sequential Downloading): situazione in cui il client scarica più torrent in modo sequenziale

BitTorrent: strategie III Altro scenario. Tutti i file sono contenuti in un solo torrent: in questo caso alcuni client BitTorrent ci permettono di selezionare i file interessanti contenuti nel torrent. Due strategie: MFCD (Multi-File Torrent Concurrent Downloading): il client selezionati i file interessanti all interno del torrent si comporta come se il torrent fosse composto solo da quelli e agisce nel modo standard, richiedendo parti di tutti i documenti, senza alcun ordine. BitTorrent: strategie IV CMFSD (Collaborative Multi-File Torrent Sequential Downloading): è un nuovo approccio proposto da Tian et al. Sviluppa MFCD con la considerazione che, a meno di stranezze, i file che sono contenuti all interno di un torrent sono in qualche modo correlati, hanno un area di interesse comune e che molto probabilmente verranno richiesti tutti o almeno buona parte dagli utenti. Dividendo quindi il torrent in subtorrent (uno per ogni file), un client può essere considerato un seeder se finisce di scaricare un subtorrent, anche se non possiede gli altri file. E una fusione di MFCD con MTSD, dove un peer ottiene vantaggi, anche se scarica file solo collegati fra loro dall argomento di interesse. BitTorrent: strategie e risultati Da alcuni studi si è visto che nel campo del multi-torrent abbiamo i seguenti risultati: sia MTCD che MTSD hanno un tempo di completamento del download proporzionale al numero di torrent richiesti. MTSD risulta migliore di MTCD soprattutto quando i file richiesti sono correlati fra di loro Nel campo del multi-file: CMFSD risulta migliore di MFCD quando i file richiesti sono correlati fra di loro, ma porta a trattamenti di favore in caso di scarsa correlazione dei file (preferendo chi possiede file di interesse a chi non ne ha) BitTorrent: identità fake Quando un peer si presenta al tracker esso gli assegna una stringa (lunga 20 byte) che lo identificherà in futuro. Ogni client quindi ha un identità per ogni tracker a cui ha fatto o fa riferimento (un identità per ogni swarm di cui fa parte). Quando un client riceve una richiesta di un peer avviene un handshaking: il peer aspetta che il client mandi la sua identità per controllarla fra quelle che ha ricevuto dal tracker. In caso negativo, interrompe la connessione. Risulta chiaro che un peer può quindi avere due identità: una per il tracker e per i peer che lo contattano una per i peer che lui stesso contatta

BitTorrent: una teoria I Perché BitTorrent è divenuto così popolare? In molti studi si è visto che l utente nella maggior parte dei software P2P risulta molto più egoista di quanto risulti in BitTorrent. Perché accade? Hales e Patarin cercano la causa di questo comportamento nella mancanza di un motore di ricerca centralizzato dei file. Mancando esso, i file.torrent possono essere trovati su siti, su forum o mandati via e-mail: tutti questi luoghi elettronici prevedono però interazione sociale fra gli individui coinvolti nel swarm, creando uno spirito di gruppo che rende l utente meno greedy. BitTorrent: una teoria II Queste comunità, chiamate da Hales e P. tribù, inoltre si autoselezionano, espellendo membri che non si comportano secondo le loro regole (rapporto Up/Down, presenza sul forum etc. etc.). Questo meccanismo inoltre porta alla dissoluzione delle tribù composte per la maggior parte da defezionatori, poiché, come già visto precedentemente, se la popolazione ha una percentuale elevata di defezionatori tutti i peer tenderanno, prima o poi, ad imbrogliare il prossimo portando la tribù alla degradazione di performance e quindi al suo scioglimento. Chi vuole far parte di un gruppo da cui non si ottiene niente e a cui si da solo? Risulteranno vincenti le tribù composte principalmente da bravi ragazzi, poiché risulteranno avere migliori performance. BitTorrent: situazione attuale Bibliografia Negli ultimi tempi sono nati parecchi client che utilizzano il sistema BitTorrent (BitTorrent, BitComet, BitTornado, Azureus...). Esso viene utilizzato per la diffusione di alcune distribuzioni di linux e incomincia a muovere alcuni passi anche nel campo di aziende private, come la Blizzard Entertainment Inc. (gli aggiornamenti di World of Warcraft, gioco di punta della casa di videogiochi, vengono distribuiti con un client BitTorrent). In un futuro, forse, la maggioranza degli update su computer avverranno con torrent, alleggerendo di molto i server di release. Bram Cohen. Incentives Build Robustness in BitTorrent. Proceedings of the First Workshop on the Economics of Peer-to-Peer Systems, Berkeley, CA, June 2003. http://wiki.theory.org/bittorrentspecification BitTorrent, Wikipedia. Jahn Arne Johnsen, Lars Erik Karlsen e Sebjørn Sæther Birkeland. Peer-to-peer networking with BitTorrent. Ye Tian, Di Wu e Kam-Wing Ng. Analyzing Multiple File Downloading in BitTorrent. The 2006 International Conference On Parallel Processing. David Hales e Simon Patarin. How to cheat BitTorrent and why nobody does. Technical Report UBLCS-2005-12