|
BitTorrent è attualmente considerato il nemico numero
uno dalle major cinematografiche, ed il motivo è essenzialmente
dovuto alla sua architettura in grado di permettere velocità
maggiori rispetto alle altre reti p2p.
Senza mai dimenticare che colpevolizzare uno strumento per l'utilizzo
errato che ne si fa è sempre un errore, e puntualizzando
che attraverso le reti bit-torrent viene distribuito anche materiale
legalissimo, ad esempio molte distribuzioni linux, vediamo di
capire meglio come funziona una rete bit-torrent.
Tante reti su misura
A ogni scaricamento viene creata una rete dedicata, con il compito
di distribuire i dati di quello specifico download; la vita di
questa rete è limitata solo a questo, dopodichè
assolto questo compito, essa viene dismessa; a differenza di altre
reti peer to peer, i partecipanti si concentrano solamente su
pochi download, privilegiando se vogliamo l'aspetto qualitativo
a quello quantitativo.
Il Tracker
In ogni rete torrent c'è un programma chiamato tracker
che inizializza la rete e che funge da server di distribuzione
delle informazioni per tutti i computer che si collegano. Ogni
computer per partecipare alla rete deve quindi collegarsi al tracker:
per questo deve servirsi di un file torrent, che contiene non
solo l'indirizzo Internet del tracker ma anche informazioni sui
file che compongono la distribuzione, sulla loro lunghezza e una
serie di meccanismi di checksum.
Il tracker è quindi il cuore del torrent e non è
un caso che i siti che distribuiscono file torrent siano così
avversati dalle major; di fatto bloccando il tracker, il torrent
non "decolla"; nel tracker sono indicati in quanti blocchi
sono suddivisi i dati e la loro dimensione (256 kb/2 Mb); questi
blocchi vengono suddivisi e inviati come singoli pacchetti di
dati da 16 kb.
Quando il pc dispone del file torrent può dunque entrare
in contatto con il tracker e diventa un nodo (peer) registrato
nella rete ad hoc; per questo motivo trasmette al tracker un identifìcativo
di 20 byte autogenerato (chiamato peer-id), lo identifica univocamente
nella rete.
I seeders
I seeder sono i nodi che offrono il download completo, mentre
i leecher sono quelli che offrono solo download parziali; queste
informazioni vengono veicolate a ciascun nodo dal tracker che
invia anche un elenco di 50 peer-id a cui potersi collegare.
Ovviato a questo compito di starter, il tracker non è
più necessario, la rete dedicata è costituita e
comincia a funzionare, in quanto con l'upload e il download dei
pacchetti di dati i peer scambiano i file solamente tra di loro.
Ogni nuovo peer interroga gli altri nodi per sapere se gli è
permesso scaricare qualcosa; dopo una prima fase, chiamata handshake,
avviene poi lo scambio di un bitfield, ossia le informazioni su
quali blocchi ciascun nodo ha già scaricato. Tramite il
bitfield il peer può gradualmente rendersi conto di quali
blocchi siano facili da reperire nella rete e quali siano invece
poco distribuiti. Queste informazioni vengono elaborate per scaricare
inizialmente ì blocchi meno richiesti, in modo da minimizzare
il rischio di formare colli d'i bottiglia in rete. L'unica eccezione
a questa regola è il primo download di un peer: in quel
caso ogni nodo richiede un blocco qualsiasi, per poter a sua volta
mettere a disposizione qualche dato verso gli altri nodi della
rete.
Il singolo nodo cerca di scaricare da quanti più peer
gli riesce ma anche di fornire dati solo ai peer che offrono un'alta
velocità di download. Questo significa che i nodi veloci
vengono preferiti, a scapito di quelli lenti scartati (chocking).
Con questo meccanismo premiante per i più performanti,
chi offre pochi upload, entro breve tempo non riceverà
più alcun download. Il chocking funziona unilateralmente,
ossia il partecipante cerca di fare in modo che il peer lento
non riceva più da lui alcun download. Può però
scaricare da quel peer.
Per l'upload ciascun nodo nella configurazione base dispone di
quattro posti liberi per connessioni "unchocked". Per
non dover effettuare continuamente chocking e unchocking, ogni
dieci secondi dev'essere ricevuto un nuovo peer, bloccandone uno
precedente.
I peer migliori
Ciascun nodo tuttavia non si affida soltanto ai collegamenti noti
ma cerca di trovare connessioni nuove e migliori; per questo dispone
di un unchocking: ogni 30 secondi si fida ed apre una connessione
di upload a un nuovo peer; se le velocità di upload e download
sono adatte, il collegamento viene mantenuto, altrimenti si passa
al successivo. C'è anche un'altra forma di unchocking:
se un partecipante non riceve per un minuto alcun blocco da un
altro peer, ne deduce che questo lo ha bloccato; in questo caso
passa quindi all'anti-snubbing, ossia elimina quel peer ed effettua
un nuovo unchocking ottimistico separato nel posto reso libero,
aumentando la velocità di download.
Una conclusione più rapida
Sarà capitato a parecchi utilizzatori della rete e-donkey
di constatate che spesso gli ultimi blocchi sono i più
problematici; la velocità di download cala, perché
il peer ha bisogno solo di pochi dati mancanti, che non riesce
a ricevere facilmente; in bit-torrent se si è giunti a
questo punto si passa alla modalità "endgame":
vengono inviati a tutti i peer conosciuti la richiesta per i blocchi
mancanti (sub-pieces). In questo stadio i sub-pieces dello stesso
blocco vengono scaricati anche da diversi nodi. Concluso il download
del file, il peer passa in modalità upload e diventa distributore,
consentendo il download di preferenza ai peer che offrono upload
elevati ad altri nodi.
Un meccanismo geniale che toglie il sonno a qualcuno di hollywood...
|