BitTorrent

De Viquipèdia
Dreceres ràpides: navegació, cerca
Logotip del programa Azureus

BitTorrent és tant una aplicació client de distribució de fitxers pel sistema d'igual a igual (P2P), com el propi protocol de compartició de fitxers, que van ser creats pel programador Bram Cohen. BitTorrent està dissenyat per distribuir àmpliament grans quantitats de dades sense haver de dependre de costosos recursos de servidors i amplada de banda. Segons CacheLogic, BitTorrent és el responsable del ~35% del trànsit a Internet.[1]

L'aplicació BitTorrent original estava implementada en Python i el seu codi font va ser publicat amb la llicència de codi obert BitTorrent (una versió modificada de la Llicència de codi obert XMPP/Jabber). Hi ha nombrosos clients compatibles amb el protocol BitTorrent, escrits amb una gran varietat de llenguatges i per a diverses plataformes.

Funcionament[modifica | modifica el codi]

BitTorrent redueix enormement la càrrega en el servidor, puix els usuaris generalment descarreguen els arxius entre ells, no del servidor. Com mostren les barres acolorides sota cada client, l'arxiu és descarregat en un ordre aleatori, en lloc de dur un ordre seqüencial.

A diferència dels sistemes d'intercanvi de fitxers tradicionals, el seu principal objectiu és proporcionar una forma eficient de distribuir un mateix fitxer a un gran grup de persones, forçant tots aquells qui descarreguen un fitxer a compartir-lo també amb els altres. Primer es distribueix per mitjans convencionals un petit fitxer amb extensió .torrent. Aquest fitxer és estàtic i per això sovint es troba en pàgines web o fins i tot es distribueix per correu electrònic. El fitxer 'torrent' conté l'adreça d'un "servidor de recerca", el qual s'encarrega de localitzar possibles fonts amb el fitxer o part d'ell.

Aquest servidor realment es troba centralitzat i proporciona estadístiques sobre el nombre de transferències, el nombre de nodes amb una còpia completa del fitxer i el nombre de nodes que en posseeixen només una porció.

El fitxer o col·lecció de fitxers desitjat és descarregat de les fonts oposades pel servidor de recerca i, al mateix temps que es realitza la descàrrega, es comencen a pujar les parts disponibles del fitxer a altres fonts, utilitzant l'amplada de banda assignat a això. Com que l'acció de compartir comença fins i tot abans de completar la descàrrega d'un fitxer, cada node inevitablement contribueix a la distribució d'aquest fitxer. El sistema s'encarrega de premiar els qui comparteixen més, a major amplada de banda major és el nombre de connexions a nodes de descàrrega que s'establiran.

Quan un usuari comença la descàrrega d'un fitxer, BitTorrent no necessàriament comença pel principi del fitxer, sinó que es baixa per parts a l'atzar. Després els usuaris es connecten entre si per a baixar el fitxer. Si entre els usuaris connectats es disposa de cada part del fitxer complet (encara estant escampat), finalment tots n'obtindran una còpia completa. Per descomptat, inicialment algú ha de posseir el fitxer complet per a començar el procés. Aquest mètode produeix importants millores en la velocitat de transferència quan molts usuaris es connecten per a baixar un mateix fitxer.

Quan no existeixen ja més nodes amb el fitxer complet ("llavors" o "seeds") connectats al servidor de recerca, hi ha la possibilitat que el fitxer no puga ser completat.

Creació i publicació d'arxius "torrent"[modifica | modifica el codi]

Els nodes que distribueixen l'arxiu el tracten com una separació en un cert nombre de peces dimensionades idènticament, normalment d'entre 32 KB i 4 MB cadascuna. Cada node realitza una suma de revisió mèdica (checksum) per a cada part, usant l'algorisme SHA-1, i emmagatzemant-lo en l'arxiu torrent. Peces majors a 512 kB reduiran la grandària d'un arxiu torrent per a cada càrrega útil, però açò reduiria l'eficiència del protocol. Quan altre node més endavant reba una peça en particular, es realitza la suma de revisió mèdica de la peça la qual és comparada amb la suma de revisió mèdica d'aqueixa peça que està emmagatzema, per a comprovar que es troba lliure d'error. Els nodes que ofereixen un arxiu complet són anomenats llavors (seeders), i el node que ofereix la còpia inicial de l'arxiu és dit llavor inicial (initial seeder).

La informació exacta que es troba continguda en l'arxiu torrent depèn de la versió del protocol BitTorrent. Per convenció, el nom d'un arxiu torrent té el sufix ".torrent". Els arxius torrent tenen una secció dita "anunci", la qual especifica la URL del seu servidor central, i una secció "informació", la qual conté els noms dels arxius, les seues grandàries, longitud de peces utilitzades, i el codi hash SHA-1 per cadascuna de les peces; tota aquesta informació és usada pels clients per verificar la integritat de les dades rebudes.

Una vegada completats els arxius torrents, són publicats en algun lloc web o en altra part i són registrats amb un servidor d'origen al que es coneix com tracker, aquest manté la llista de clients que actualment estan participant sobre l'arxiu torrent. Alternativament, en un sistema descentralitzat, cada node actua com un servidor d'origen. Açò està sent implementat pels clients Client BitTorrent, µTorrent, BitComet, KTorrent i Deluge, a través de mètodes de Taula de Hash Distribuït (DHT). Azureus també suporta el mètode del traçabilitat de nodes que és incompatible (des d'abril de 2007) amb el DHT que ofereix als seus clients.

BitTorrent en comparació amb altres xarxes P2P[modifica | modifica el codi]

El mètode utilitzat per BitTorrent per a la distribució de fitxers és similar en molts aspectes al que fa servir la xarxa eDonkey 2000, però generalment els nodes en aquesta xarxa comparteixen i descarreguen més quantitat de fitxers, perquè redueixen l'amplada de banda disponible per a cada transferència. Les transferències en BitTorrent són normalment molt ràpides, ja que tots els nodes en un grup es concentren en la transferència d'un sol fitxer o una col·lecció de fitxers. A més el protocol eDonkey2000 no premia aquells usuaris que comparteixen una amplada de banda més gran. No obstant això, cal aclarir que el client més estès per a la xarxa eDonkey, l'emule, sí que incorpora un sistema de crèdits per recompensar aquells que més comparteixen.

Al contrari que altres xarxes d'intercanvi, BitTorrent no inclou cap mecanisme de cerca de fitxers. Els usuaris de BitTorrent haurien de localitzar pels seus propis mitjans els fitxers torrent que necessita el protocol. Normalment, aquests fitxers es poden descarregar des de les pàgines web que publiquen grans fitxers (com les distribucions GNU/Linux) o des d'índexs web de cerca (com The Pirate Bay, Ktorrents o Bitgle).

BitTorrent fou programat originalment en Python encara que actualment es poden trobar clients escrits en C o en Java per exemple.

Segons CacheLogic,[2] durant l'any 2005 BitTorrent s'utilitzava especialment en Àsia, mentre que eDonkey2000 es preferia a Europa i Amèrica.

Programes client[modifica | modifica el codi]

Els clients de BitTorrent es poden trobar de dos tipus distints:

  • De descàrrega única (solament descarrega un arxiu .torrent, però es poden tenir diversos oberts simultàniament), com BitTornado o el navegador Opera.

Estructura d'una xarxa Bittorrent[modifica | modifica el codi]

Una xarxa en Bittorrent està formada per:

  • Peers (Parells): Es denomina així a tots els usuaris que estan en la xarxa.
  • Leechers: Es denomina així a tots els usuaris que estan en la xarxa descarregant l'arxiu

però que encara no tenen l'arxiu complet.

  • Seeds (Llavors): Són els usuaris de la xarxa que posseeixen l'arxiu complet. Només

pugen parts als altres peers, però no baixen gens.

  • Tracker: Un tracker de BitTorrent és un servidor especial que conté la informació

necessària perquè els peers es connecten uns amb uns altres. Inicialment és l'única forma de localitzar quins usuaris contenen l'arxiu que es vol descarregar.

Red Bittorrent

Mecànica del funcionament: 1º Un usuari baixa d'un servidor web un arxiu .torrent que conté la informació del fitxer que volem descarregar. Entre altra molta informació conté l'adreça del tracker al que ens hem de connectar per a unir-nos a l'eixam de peers.

2º Aquest arxiu .torrent s'obri amb algun programa client, que sap interpretar aquesta informació. Existeixen multitud de clients gratuïts que es poden utilitzar. Entre els més populars estan μ torrent, Bitcomet, Vuze (anteriorment Azureus). Tots estan basats en el protocol bittorrent original però alguns d'ells inclouen millores al protocol.

3º El tracker i el peer es comuniquen a través d'una connexió HTTP. El tracker informa de la llista de tots els peers i seeds que contenen parts de l'arxiu que volem descarregar. El tracker s'actualitza amb la informació del nou peer que acaba d'ingressar.

4º Una vegada que el peer sap on ha de cercar les parts necessàries, aquest peer es comunica amb uns altres mitjançant sockets TCP o UDP i l'arxiu comença a descarregar-se en l'ordinador de l'usuari. Cada part descarregada es comparteix automàticament amb altres peers.

Referències[modifica | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: BitTorrent