BitTorrent es un protocolo diseñado para el intercambio de archivos entre iguales (peer-to-peer) en Internet. Es uno de los protocolos más comunes para la transferencia de archivos grandes.
El programador Bram Cohen diseñó el protocolo en abril de 2001 y publicó su primera implementación el 2 de julio de 2001. Actualmente es propiedad de Justin Sun, fundador de Tron Foundation, el cual adquirió BitTorrent, Inc. por 140millones de dólares el 18 de junio de 2018. Existen numerosos clientes BitTorrent disponibles para varios sistemas operativos.
En enero de 2012, BitTorrent tenía 150millones de usuarios activos de acuerdo con BitTorrent, Inc. Basándose en esto, estimaban que el número total de usuarios mensuales de BitTorrent era mayor de 250millones. Según datos mostrados en su propio sitio web, los datos actuales estiman que más de 170millones de personas usan su producto cada mes. El protocolo bittorrent mueve hasta el 40% del tráfico mundial de Internet diariamente.BitTorrent and µTorrent Software Surpass 150 Million User Milestone En cualquier instante de tiempo, BitTorrent tiene, en promedio, más usuarios activos que YouTube y Facebook juntos (en un instante de tiempo, no en número total de usuarios únicos específicamente de BitTorrent).BitTorrent Has More Users Than Netflix and Hulu Combined--and Doubled Por otro lado, tras el cierre de la web Megaupload, el uso de este protocolo se ha incrementado considerablemente.
La nueva criptomoneda llega unos seis meses después de que BitTorrent fuera adquirida por la organización global TRON, enfocada en la creación de una Internet verdaderamente descentralizada.
Descripción El protocolo BitTorrent puede ser usado para reducir el impacto que tiene la distribución de archivos grandes en los servidores. En lugar de descargar el archivo desde un único servidor, el protocolo BitTorrent permite a los usuarios unirse entre ellos en un "enjambre" (swarm) para descargar y subir el archivo de forma simultánea. El protocolo es una alternativa al sistema basado en servidores, que consiste en disponer de varios servidores espejo (mirror) desde donde el usuario descarga el archivo completo, y puede funcionar en redes con poco ancho de banda, de esta forma, dispositivos pequeños como los teléfono inteligente, son capaces de distribuir archivos grandes o video en retransmisión a muchos receptores.
Un usuario que quiere subir un archivo, primero crea un archivo torrent y lo distribuye de forma convencional (páginas web, correo electrónico, etc). Después hace que el archivo esté disponible en la red a través de un nodo BitTorrent que actúa como semilla (seed). Los usuarios que quieren descargar el archivo, obtienen el archivo torrent y crean otro nodo BitTorrent que actúa como cliente o "sanguijuela" (leecher), intercambiando partes del archivo con la semilla y con otros clientes.
El archivo que está siendo distribuido se divide en partes pequeñas (pieces). Cada vez que un usuario recibe una parte nueva del archivo, puede a su vez compartirla con otros usuarios, liberando a la semilla original de tener que enviar una copia de esa parte a todos los usuarios que quieren el archivo. En BitTorrent, la tarea de distribuir un archivo es compartida por todos aquellos que desean tener el archivo. Es perfectamente posible que la semilla solo envíe una copia del archivo y el archivo sea distribuido a un número ilimitado de usuarios.
Cada parte del archivo está protegida por un hash criptográfico contenido dentro del archivo torrent. Esto asegura que cualquier modificación que se produzca en una parte puede ser detectada, y por lo tanto evita que tanto las modificaciones accidentales como las maliciosas sean recibidas en otros nodos. Si un nodo tiene el archivo torrent auténtico, puede verificar la autenticidad del archivo completo que ha recibido.
Las partes típicamente no se descargan de forma secuencial, estas son reordenadas por el cliente BitTorrent, el cual comprueba las partes que tiene y las que faltan de recibir. Todas las partes del archivo son del mismo tamaño y son transmitidas de una sola vez (por ejemplo un archivo de 10MB puede ser transmitido en diez partes de 1MiB o en cuarenta partes de 256KiB). Debido a esto, se puede detener la descarga de un archivo en cualquier momento y reanudarla posteriormente sin perder la información descargada anteriormente. Esto hace que BitTorrent sea especialmente útil en la transferencia de archivos grandes. Esto también permite al cliente buscar las partes disponibles para descargar fácilmente, en lugar de tener que pausar la descarga y esperar que la siguiente parte esté disponible, lo que reduce el tiempo de descarga.
Cuando un cliente descarga el archivo completamente se convierte en una semilla. Este cambio eventual de clientes en semillas determina la salud (health) o disponibilidad del archivo (determinado por el número de usuarios que tienen el archivo completo).
La naturaleza distribuida de BitTorrent conduce a que el archivo se distribuya a través de muchos nodos. Cuantos más usuarios se unan al "enjambre", mayor es la probabilidad de que un nodo pueda descargar el archivo completo. En relación con los esquemas de distribución tradicionales, esto permite al distribuidor original reducir los costes de hardware y de ancho de banda. Esto también proporciona redundancia ante posibles problemas del sistema, reduce las dependencias con el distribuidor originalEstimating Self-Sustainability in Peer-to-Peer Swarming Systems by D. Menasche, A. Rocha, E. de Souza e Silva, R. M. Leao, D. Towsley, A. Venkataramani y proporciona fuentes de descarga transitorias (no son siempre los mismos usuarios los que comparten el archivo), por lo tanto es más difícil de rastrear de donde procede el archivo por los que intentan bloquear su distribución en comparación con un archivo alojado en un servidor externo.
Historia El programador Bram Cohen, exalumno de la Universidad de Buffalo,diseñó el protocolo en abril de 2001 y lanzó la primera versión el 2 de julio de 2001.
La primera versión del cliente BitTorrent no tenía motor de búsqueda ni intercambio entre pares. Hasta 2005, la única forma de compartir archivos era creando un pequeño archivo de texto llamado " torrent ", que se subía a un sitio de índice de torrents. El primer cargador actuó como semilla , y los descargadores inicialmente se conectarían como pares . Aquellos que deseen descargar el archivo descargarían el torrent, que su cliente usaría para conectarse a un rastreador que tenía una lista de las direcciones IP de otras semillas y pares en el enjambre. Una vez que un compañero completó una descarga del archivo completo, a su vez podría funcionar como una semilla. Estos archivos contienen metadatos sobre los archivos que se compartirán y los rastreadores .que realizan un seguimiento de las otras semillas y compañeros.
En 2005, primero Vuze y luego el cliente BitTorrent introdujeron el seguimiento distribuido utilizando tablas hash distribuidas que permitían a los clientes intercambiar datos en enjambres directamente sin necesidad de un archivo torrent.
En 2006, se agregó la funcionalidad de intercambio de pares, lo que permite a los clientes agregar pares en función de los datos encontrados en los nodos conectados.
BitTorrent v2 está diseñado para funcionar sin problemas con versiones anteriores del protocolo BitTorrent. El motivo principal de la actualización fue que la antigua función hash criptográfica , SHA-1 , ya no se considera a salvo de ataques maliciosos por parte de los desarrolladores y, como tal, v2 usa SHA-256 . Para garantizar la compatibilidad con versiones anteriores, el formato de archivo .torrent v2 es compatible con un modo híbrido en el que los torrents se procesan mediante el método nuevo y el antiguo, con la intención de que los archivos se compartan con pares en enjambres v1 y v2. Otra actualización de la especificación es agregar un árbol hash para acelerar el tiempo desde la adición de un torrent hasta la descarga de archivos, y para permitir verificaciones más granulares de corrupción de archivos. Además, cada archivo ahora se codifica individualmente, lo que permite la deduplicación de los archivos en el enjambre, de modo que si varios torrentes incluyen los mismos archivos, pero los sembradores solo están sembrando el archivo de algunos, los descargadores de los otros torrents aún pueden descargar el archivo. Los enlaces magnéticos para v2 también admiten un modo híbrido para garantizar la compatibilidad con clientes heredados
BitTorrent en comparación con otras redes P2P thumb|250px|Captura de pantalla del cliente BitTorrent Deluge. El método utilizado por BitTorrent para distribuir archivos es similar en muchos aspectos al utilizado por la red eDonkey 2000, pero generalmente los nodos en esta red comparten y bajan mayores cantidades de ficheros, reduciendo el ancho de banda disponible para cada transferencia. Las transferencias en BitTorrent son normalmente muy rápidas ya que todos los nodos en un grupo se concentran en transferir un solo fichero o una colección de ellos. Además el protocolo eDonkey2000 no premia a aquellos usuarios que comparten un mayor ancho de banda. Sin embargo, hay que aclarar que el cliente más extendido para la red eDonkey, el eMule, sí incorpora un sistema de créditos para recompensar a los que más comparten.
Al contrario que otras redes de intercambio, BitTorrent no incluye ningún mecanismo de búsqueda de archivos. Los usuarios de BitTorrent deberán localizar por sus propios medios los archivos torrent que necesita el protocolo. Normalmente, estos archivos pueden descargarse desde las páginas web que publican grandes archivos (como las distribuciones GNU/Linux) o desde índices web de búsqueda (como The Pirate Bay).
La implementación original de BitTorrent fue programada en Python, aunque hoy en día se pueden encontrar clientes escritos en C o en Java por ejemplo.
Según CacheLogic,CacheLogic Announces eDonkey Has Become World's Largest P2P File Trading Network, Surpassing BitTorrent durante el año 2005 BitTorrent se utilizaba especialmente en Asia, mientras que eDonkey2000 se prefería en Europa y América.
Programas cliente
Los clientes de BitTorrent se pueden encontrar de dos tipos distintos: De múltiples descargas simultáneas como Vuze, BitComet, KTorrent, μTorrent, qBittorrent o Transmission. De descarga única (solo descarga un archivo .torrent, pero se pueden tener varios abiertos simultáneamente), como BitTornado o el navegador Opera.
Estructura de una red BitTorrent thumb|250px|Funcionamiento de una red BitTorrent. Una red en Bittorrent está formada por: Peers (pares): Se denomina así a todos los usuarios que están en la red. Leechers (sanguijuelas): Se denomina así a todos los usuarios que están en la red descargando el archivo pero que todavía no tienen el archivo completo. También se llama despectivamente a quienes descargan archivos pero no los comparten. Seeders (semillas): Son los usuarios de la red que poseen el archivo completo. Trackers (rastreadores): Un rastreador de BitTorrent es un servidor especial que contiene la información necesaria para que los pares se conecten unos con otros. Inicialmente es la única forma de localizar qué usuarios contienen el archivo que se quiere descargar. Swarm (enjambre): El enjambre son los usuarios en general que el rastreador se encarga de buscar. El nombre es debido a la similitud con las abejas y su comportamiento; en esta analogía, el rastreador es el panal de abejas, el enjambre de abejas son los usuarios y la miel es el torrent con el contenido.
Mecánica del funcionamiento de BitTorrent: