BitTorrent ye un protocolu diseñáu pal intercambiu d'archivos puntu a puntu (peer-to-peer) n'Internet. Ye unu de los protocolos más comunes pa la tresferencia d'archivos grandes.

El programador Bram Cohen diseñó'l protocolu n'abril de 2001 y publicó la so primer versión el 2 de xunetu de 2001. Anguaño ye propiedá de Justin Sun, fundador de Tron Foundation, que adquirió BitTorrent, Inc. por 140 millones de dólares, el 18 de xunu de 2018. Esisten numberosos veceres BitTorrent disponibles pa dellos sistemes operativos.

En xineru de 2012, BitTorrent tenía 150 millones d'usuarios activos acordies con BitTorrent, Inc., basándose nesto, envaloraben que'l númberu total d'usuarios mensuales de BitTorrent yera mayor de 250 millones. Segun datos amosaos na so propia pagina web, los datos actuales envaloren que más de 170 millones de persones usen el so productu cada mes. El protocolu bittorrent mueve hasta'l 40% del tráficu mundial d'Internet diariamente.BitTorrent and µTorrent Software Surpass 150 Million User Milestone En cualquier intre de tiempu BitTorrent tien, en permediu, más usuarios activos que YouTube y Facebook xuntos (nun intre de tiempu, non en númberu total d'usuarios únicos específicamente de BitTorrent).BitTorrent Has More Users Than Netflix and Hulu Combined--and Doubled Per otru llau, tres el zarru de la web Megaupload, l'usu d'esti protocolu amontóse considerablemente.

Descripción El protocolu BitTorrent pue ser usáu p'amenorgar l'impautu que tien la distribución d'archivos grandes nos servidores. En llugar de descargar l'archivu dende un únicu servidor, el protocolu BitTorrent dexa a los usuarios xunise ente ellos nun "ensame" (swarm) pa descargar y xubir l'archivu de forma simultánea. El protocolu ye una alternativa al sistema basáu en servidores, que consiste en disponer de dellos servidores espeyu (mirror) dende onde l'usuariu descarga l'archivu completu, y puede funcionar en redes con pocu anchu de banda, d'esta forma, dispositivos pequeños como los smartphone, son capaces de distribuyir archivos grandes o videu en streaming a munchos receptores.

Un usuariu que quier xubir un archivu, primero crea un archivu torrent y distribuyir de forma convencional (páxina web, corréu electrónicu, etc). Dempués fai que l'archivu tea disponible na rede al traviés d'un nodo BitTorrent qu'actúa como grana (seed). Los usuarios que quieren descargar l'archivu, llogren l'archivu torrent y crean otru nodo BitTorrent qu'actúa como veceru o "sangrixuela" (leecher), intercambiando partes del archivu cola grana y con otros veceros.

L'archivu que ta siendo distribuyíu estremar en partes pequeñes (pieces). Cada vez qu'un usuariu recibe una parte nueva del archivu, puede de la mesma compartila con otros usuarios, lliberando a la grana orixinal de tener qu'unviar una copia d'esa parte a tolos usuarios que quieren l'archivu. En BitTorrent, la xera de distribuyir un archivu ye compartida por toos aquellos que deseyen tener l'archivu. Ye perfectamente posible que la grana solo unvie una copia del archivu y l'archivu seya distribuyíu a un númberu ilimitáu d'usuarios.

Cada parte del archivu ta protexida por un hash criptográficu conteníu dientro del archivu torrent. Esto asegura que cualquier cambéu que se produza nuna parte puede ser detectada, y polo tanto evita que tanto los cambeos accidentales como les malicioses sían recibíes n'otros nodos. Si un nodo tien l'archivu torrent auténticu, puede verificar l'autenticidá del archivu completu que recibió.

Les partes típicamente nun se descarguen de forma secuencial, estes son reordenaes pol veceru BitTorrent, que comprueba les partes que tien y les que falten de recibir. Toles partes del archivu son del mesmu tamañu y son tresmitíes d'una sola vegada (por casu un archivu de 10 MB pue ser tresmitíu en diez partes de 1 MiB o en cuarenta partes de 256 KiB). Por cuenta de esto, puede detenese la descarga d'un archivu en cualquier momentu y volver# a entamar darréu ensin perder la información descargada enantes. Esto fai que BitTorrent seya especialmente útil na tresferencia d'archivos grandes. Esto tamién dexa al veceru buscar les partes disponibles pa descargar fácilmente, en llugar de tener que pausar la descarga y esperar que la siguiente parte tea disponible, lo qu'amenorga'l tiempu de descarga.

Cuando un veceru descarga l'archivu dafechu conviértese nuna grana. Esti cambéu eventual de veceros en granes determina la salú (health) o disponibilidad del archivu (determináu pol númberu d'usuarios que tienen l'archivu completu).

La naturaleza distribuyida de BitTorrent conduz a que l'archivu distribúyase al traviés de munchos nodos. Cuantos más usuarios xunir al "ensame", mayor ye la probabilidá de qu'un nodo pueda descargar l'archivu completu. En rellación colos esquemes de distribución tradicionales, esto dexa al distribuidor orixinal amenorgar los costos de hardware y d'anchu de banda. Esto tamién apurre redundancia ante posible problemes del sistema, amenorga les dependencies col distribuidor orixinalEstimating Self-Sustainability in Peer-to-Peer Swarming Systems by D. Menasche, A. Rocha, Y. de Souza y Silva, R. M. Leao, D. Towsley, A. Venkataramani y apurre fontes de descarga transitories (nun son siempres los mesmos usuarios los que comparten l'archivu), polo tanto ye más malo de rastrexar d'onde procede l'archivu polos qu'intenten bloquiar la so distribución en comparanza con un archivu agospiáu nun servidor esternu.

BitTorrent en comparanza con otres redes P2P thumb|250px|Captura de pantalla del veceru BitTorrent Deluge. El métodu utilizáu por BitTorrent pa distribuyir archivos ye similar en munchos aspeutos al utilizáu pola rede eDonkey 2000, pero xeneralmente los nodos nesta rede comparten y baxen mayores cantidaes de ficheros, amenorgando l'anchu de banda disponible pa cada tresferencia. Les tresferencies en BitTorrent son de normal bien rápides yá que tolos nodos nun grupu concentrar en tresferir un solu ficheru o una coleición de los mesmos. Amás el protocolu eDonkey2000 nun premia a aquellos usuarios que comparten un mayor anchu de banda. Sicasí, hai qu'esclariar que'l veceru más estendíu pa la rede eDonkey, l'emule, sí incorpora un sistema de creitos pa compensar a los que más comparten.

Al contrariu qu'otres redes d'intercambiu, BitTorrent nun inclúi nengún mecanismu de busca d'archivos. Los usuarios de BitTorrent tendrán d'alcontrar pelos sos propios medios los archivos torrent que precisa'l protocolu. De normal, estos archivos pueden descargase dende les páxines web que publiquen grandes archivos (como les distribuciones GNU/Linux) o dende índice web de busca (como The Pirate Bay).

BitTorrent foi programáu orixinalmente en Python anque anguaño pueden atopase veceros escritos en C o en Java por casu.

Según CacheLogic,CacheLogic Announces eDonkey Has Become World's Largest P2P File Trading Network, Surpassing BitTorrent mientres l'añu 2005 BitTorrent utilizábase especialmente n'Asia, ente que eDonkey2000 preferir n'Europa y América.

Programes veceru

Los veceros de BitTorrent pueden atopase de dos tipos distintos: De múltiples descargues simultánees como Vuze, BitComet, KTorrent, μTorrent o Transmission. De descarga única (solo descarga un archivu .torrent, pero pueden tenese dellos abiertos simultáneamente), como BitTornado o'l navegador Opera.

Estructura d'una rede BitTorrent thumb|250px|Funcionamientu d'una rede BitTorrent. Una rede en Bittorrent ta formada por: Peers (puntos): Denominar asina a tolos usuarios que tán na rede. Leechers (sangrixueles): Denominar asina a tolos usuarios que tán na rede descargando l'archivu pero qu'inda nun tienen l'archivu completu. Tamién se llama despectivamente a quien descarguen archivo pero nun los comparten. Seeders (granes): Son los usuarios de la rede que tienen l'archivu completu. Trackers (rastreadores): Un tracker de BitTorrent ye un servidor especial que contién la información necesaria por que los peers conéctense unos con otros. Primeramente ye la única forma d'alcontrar qué usuarios contienen l'archivu que quier descargase. Ensame: L'ensame son los usuarios polo xeneral que'l tracker encargar de buscar. El nome ye por cuenta de la semeyanza coles abeyes y el so comportamientu; nesta analoxía, el tracker ye'l setu d'abeyes, l'ensame d'abeyes son los usuarios y el miel ye'l torrent col conteníu.

Mecánica del funcionamientu de BitTorrent: Un usuariu baxa d'un servidor web un archivu .torrent que contién la información del ficheru que queremos descargar. Ente otra muncha información contién la direición del tracker al que nos tenemos que coneutar pa xuninos al ensame de peers (el .torrent xeneralmente ye un archivu bien pequeñu, d'unos pocos kilobytes). Esti archivu .torrent abrir con dalgún "programa veceru", que sabe interpretar dicha información. Esisten ensame de veceros gratuitos que pueden utilizase. Ente los más populares tán μtorrent, Bitcomet, Vuze (enantes Azureus). Toos tán basaos nel protocolu BitTorrent orixinal pero dalgunos d'ellos inclúin meyores al protocolu. El tracker y el peer comuníquense al traviés d'una 'conexón HTTP'. El tracker informa de la llista de tolos peers y seeds que contienen partes del archivu que queremos descargar. El tracker actualizar cola información del nuevu peer qu'acaba d'ingresar. Una vegada que'l peer sabe ónde tien que buscar les partes necesaries, esti peer comunicar con otros por aciu 'sockets TCP' o 'UDP' y l'archivu empieza a descargase nel ordenador del usuariu. Cada parte descargada compartir automáticamente con otros peers.

Archivos .torrent y la so codificación interna Los archivos .torrent contienen información avera del archivu que queremos baxar. Esta información ta codificada por aciu Bencoding. La siguiente tabla amuesa los distintos tipos de datos que podemos usar pa representar la metainformación contenida nel archivu .torrent.

Strings Cadenes de Calteres <llargor de la cadena>:<cadena> 3:rede Representa la cadena “rede”

Integers Enteros i<enteru>y i3y Representa 3.

Lists Llista de tipos [strings, integers, lists, dictionaries] l<bencoded type>y l3:rede4:wifie representa la llista de 2 cadenes: ["rede", "wifi"]

Dictionaries Son asociaciones de clave→ valor d<bencoded string><bencoded element>y d3:ana4:blas5:muyer6:hombree representa'l diccionariu { "ana"→ "muyer", "blas"→ "home" } d4:spaml1:a1:bee representa'l diccionariu { "spam"→ [ "a", "b" ] }

Si abrimos con un editor de testu un archivu .torrent atopamos con un diccionariu que contién les siguientes claves: info: Un diccionariu que describe los archivos del torrent. Puede tener una o otra estructura dependiendo de si'l torrent ye pa baxar un archivu o dellos archivos con una xerarquía de direutorios. announce: cadena que representa la URL del tracker announce-list: (llista de cadenes opcional). Usar pa representar llistes de trackers alternativos. Ye una estensión a la especificación orixinal. creation date: (enteru opcional) La fecha de creación del torrent en formatu de dómina UNIX. comment: (cadena opcional) Campu llibre pal creador del torrent. created by: (cadena opcional) Nome y versión del programa usáu pa crear l'archivu torrent.

El diccionariu info qu'acabamos de citar contién de la mesma les siguientes claves: name: (cadena) El nome del archivu o direutoriu onde se van almacenar los archivos. piece length: Como diximos na introducción, l'archivu que queremos compartir ye estremáu en pieces. Esti parámetru ye un enteru que representa'l númberu de bytes de cada pieza. Pieces demasiao grandes causen ineficiencia y pieces demasiáu pequeñes formen un archivu .torrent más pesáu. Anguaño aconséyase afitar el tamañu de cada pieza en 512 KB o menos p'archivos de dellos GBs.