lunedì 1 giugno 2015

Torrent e qBittorrent (parte 1)

logo bittorrent
Tra i neofiti, a cui è rivolto l'articolo, si usano client torrent, ma quasi nessuno sa cos'è una rete torrent, né come funziona né come configurare correttamente client e soprattutto come ci si dovrebbe comportare per mantenere in vita un file.

Cominciamo dal principio: il metodo standard per scaricare un file. L'architettura più usata un po' di anni fa per scaricare un file era l'architettura client-server. Cosa vuol dire? Per fare un paragone con la vita reale chi gestisce un magazzino (server) invia tramite un proprio corriere (che rappresenta la connessione tra server e client) un pacco ad un cliente (client). Il problema è che il magazzino e i corrieri devono gestire tutti i clienti, per cui è possibile, anzi normale, che un cliente debba aspettare più del tragitto magazzino-casa per ricevere il proprio pacco, perché un corriere dovrà passare da altri clienti, fermarsi, consegnare ecc ecc.

Il principio è lo stesso, il server, come tutti i computer connessi ad internet, avrà una connessione ad internet che ha una banda limitata per l'invio di dati (il numero di corrieri!!!) e quindi fino ad un certo numero di client connessi non ci saranno particolari limitazioni, in quanto sarà la banda in download del client a limitare la velocità. Superato un certo numero, però, tutto comincerà a rallentare. Il tutto dipende da quante risorse ha il server, per questo ci sono casi dove scaricare un file è una vera tragedia (vedi Realtek per i driver audio).

Le rete torrent, che è una rete p2p che usa il protocollo BitTorrent, sono strutturate in modo diverso. Non è un server centrale che invia il file a chi lo richiede, ma sono i pc degli utenti che si comportano sia da client che da server. In questo modo, non vi è la necessità di avere un solo server potente, ma più utenti scaricano ed inviano successivamente il file più la distribuzione sarà veloce, tanto che la limitazione risulta essere la banda in download di chi scarica. L'unico compito che rimane al server centrale, detto tracker, è pubblicare un link al file e coordinare i vari client affinché chi faccia richiesta di un file possa connettersi a chi lo sta inviando. Questo vuol dire che per il server centrale non passa un solo frammento del file condiviso, ma solo le informazioni per sapere dove è possibile ottenere il file stesso. Da aggiungere che collegato al protocollo Torrent vi è il DHT. Senza entrare nei dettagli, tale sistema permette ai client di "arrangiarsi" nel caso il server centrale non sia più funzionante. Nei fatti ciascun client tiene traccia degli altri client esistenti e si ricollega ad essi senza disturbare il server centrale. Al momento è utile in caso di problemi o per ricercare più velocemente altri pc che stanno inviando il file richiesto, ma in futuro potrebbero esistere reti composte solo da client.

Tutto bello e fantastico? No, in quanto il funzionamento del tutto è responsabilità dei singoli utenti. In termini tecnici un computer che fa parte di una rete p2p si chiama peer, ma non tutti i peer sono in un certo istante uguali. Quando un peer invia un file si dice che è un seed, seme, mentre se si limita a scaricarlo allora è un leecher, letteralmente: sanguisuga. In una rete di questo tipo è chiaro che la velocità con cui si condivide un file è dovuta al rapporto tra quanti lo stanno inviando (seed) e quanti lo stanno ricevendo (leecher). I client bittorrent disponibili tendono a condividere subito un frammento di un file scaricato, per cui un peer può essere sia seed che leecher, ma per convenzione i seed sono coloro che hanno una copia del file completo e lo stanno inviando.

Cosa succede se troppe persone scaricano un file, ma poi non lo condividono? Il sistema tenderà a rallentare o addirittura a fermarsi, creando code. Per questo è importante aspettare dopo aver finito di scaricare un file di aver inviato una certa quantità di dati, in modo da "restituire il favore" e permettere al file di continuare ad essere distribuito a velocità adeguate. Da molte parti si consiglia di inviare dati pari ad una volta e mezza rispetto a quelli ricevuti, questo per permettere al sistema di giovare del fatto che qualcuno ha ottenuto il file. Se il rapporto fosse di 1 a 1, allora la nostra presenza sulla rete sarebbe neutra, sotto questo rapporto avremmo addirittura creato un danno che qualche altro peer dovrà sopperire e il titolo di leecher ci marchierà a vita. Al momento non vi sono particolari limitazioni per chi, usando un client torrent legittimo, si limita a scaricare, ma non aspetta di restituire almeno una quota pari di dati, ma in futuro la cosa potrebbe cambiare.

Sembra una battaglia di principio, ma questo genere di reti prospera se ciascun utente fa il suo dovere. Ora che ho spiegato i principi di questa rete, rinvio alla seconda parte dell'articolo per la configurazione di un client torrent e del router.

Nessun commento :

Posta un commento