BitTorrent

De Wikipedia, la enciclopedia libre
BitTorrent
Parte de protocolo de comunicaciones
Informacion general
Tipo de programa protocolo de red
Lanzamiento inicial 2001
Enlaces

BitTorrent es un protocolo disenado para el intercambio de archivos entre iguales ( peer-to-peer ) en Internet . Es uno de los protocolos mas comunes para la transferencia de archivos grandes. [ 1 ]

El programador Bram Cohen diseno el protocolo en abril de 2001 y publico su primera implementacion el 2 de julio de 2001. [ 2 ] ​ Actualmente es propiedad de Justin Sun, fundador de Tron Foundation, el cual adquirio BitTorrent, Inc. por 140 millones de dolares el 18 de junio de 2018. Existen numerosos clientes BitTorrent disponibles para varios sistemas operativos .

En enero de 2012, BitTorrent tenia 150 millones de usuarios activos de acuerdo con BitTorrent, Inc. Basandose en esto, estimaban que el numero total de usuarios mensuales de BitTorrent era mayor de 250 millones. Segun datos mostrados en su propio sitio web, los datos actuales estiman que mas de 170 millones de personas usan su producto cada mes. El protocolo bittorrent mueve hasta el 40% del trafico mundial de Internet diariamente. [ 3 ] ​ En cualquier instante de tiempo, BitTorrent tiene, en promedio, mas usuarios activos que YouTube y Facebook juntos (en un instante de tiempo, no en numero total de usuarios unicos especificamente de BitTorrent). [ 4 ] ​ 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 despues de que BitTorrent fuera adquirida por la organizacion global TRON, enfocada en la creacion de una Internet verdaderamente descentralizada.

Descripcion [ editar ]

El protocolo BitTorrent puede ser usado para reducir el impacto que tiene la distribucion de archivos grandes en los servidores . En lugar de descargar el archivo desde un unico servidor, el protocolo BitTorrent permite a los usuarios unirse entre ellos en un "enjambre" ( swarm ) para descargar y subir el archivo de forma simultanea. 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 pequenos como los telefono inteligente , son capaces de distribuir archivos grandes o video en retransmision a muchos receptores.

Un usuario que quiere subir un archivo, primero crea un archivo torrent y lo distribuye de forma convencional ( paginas web , correo electronico , etc). Despues hace que el archivo este disponible en la red a traves de un nodo BitTorrent que actua como semilla ( seed ). Los usuarios que quieren descargar el archivo, obtienen el archivo torrent y crean otro nodo BitTorrent que actua como cliente o "sanguijuela" ( leecher ), intercambiando partes del archivo con la semilla y con otros clientes.

El archivo que esta siendo distribuido se divide en partes pequenas ( 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 envie una copia del archivo y el archivo sea distribuido a un numero ilimitado de usuarios.

Cada parte del archivo esta protegida por un hash criptografico contenido dentro del archivo torrent . [ 5 ] ​ Esto asegura que cualquier modificacion 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 autentico, puede verificar la autenticidad del archivo completo que ha recibido.

Las partes tipicamente 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 tamano y son transmitidas de una sola vez (por ejemplo un archivo de 10 MB puede ser transmitido en diez partes de 1 MiB o en cuarenta partes de 256 KiB ). Debido a esto, se puede detener la descarga de un archivo en cualquier momento y reanudarla posteriormente sin perder la informacion descargada anteriormente. Esto hace que BitTorrent sea especialmente util en la transferencia de archivos grandes. Esto tambien permite al cliente buscar las partes disponibles para descargar facilmente, en lugar de tener que pausar la descarga y esperar que la siguiente parte este 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 numero de usuarios que tienen el archivo completo).

La naturaleza distribuida de BitTorrent conduce a que el archivo se distribuya a traves de muchos nodos. Cuantos mas usuarios se unan al "enjambre", mayor es la probabilidad de que un nodo pueda descargar el archivo completo. En relacion con los esquemas de distribucion tradicionales, esto permite al distribuidor original reducir los costes de hardware y de ancho de banda. Esto tambien proporciona redundancia ante posibles problemas del sistema, reduce las dependencias con el distribuidor original [ 6 ] ​ y proporciona fuentes de descarga transitorias (no son siempre los mismos usuarios los que comparten el archivo), por lo tanto es mas dificil de rastrear de donde procede el archivo por los que intentan bloquear su distribucion en comparacion con un archivo alojado en un servidor externo.

Historia [ editar ]

El programador Bram Cohen, exalumno de la Universidad de Buffalo [ 7 ] ​,diseno el protocolo en abril de 2001 y lanzo la primera version el 2 de julio de 2001.

La primera version del cliente BitTorrent no tenia motor de busqueda ni intercambio entre pares. Hasta 2005, la unica forma de compartir archivos era creando un pequeno archivo de texto llamado " torrent ", que se subia a un sitio de indice de torrents. El primer cargador actuo como semilla , y los descargadores inicialmente se conectarian como pares . Aquellos que deseen descargar el archivo descargarian el torrent, que su cliente usaria para conectarse a un rastreador que tenia una lista de las direcciones IP de otras semillas y pares en el enjambre. Una vez que un companero completo una descarga del archivo completo, a su vez podria funcionar como una semilla. Estos archivos contienen metadatos sobre los archivos que se compartiran y los rastreadores .que realizan un seguimiento de las otras semillas y companeros.

En 2005, primero Vuze y luego el cliente BitTorrent introdujeron el seguimiento distribuido utilizando tablas hash distribuidas que permitian a los clientes intercambiar datos en enjambres directamente sin necesidad de un archivo torrent.

En 2006, se agrego la funcionalidad de intercambio de pares, lo que permite a los clientes agregar pares en funcion de los datos encontrados en los nodos conectados.

BitTorrent v2 esta disenado para funcionar sin problemas con versiones anteriores del protocolo BitTorrent. El motivo principal de la actualizacion fue que la antigua funcion hash criptografica , 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 hibrido en el que los torrents se procesan mediante el metodo nuevo y el antiguo, con la intencion de que los archivos se compartan con pares en enjambres v1 y v2. Otra actualizacion de la especificacion es agregar un arbol hash para acelerar el tiempo desde la adicion de un torrent hasta la descarga de archivos, y para permitir verificaciones mas granulares de corrupcion de archivos. Ademas, cada archivo ahora se codifica individualmente, lo que permite la deduplicacion de los archivos en el enjambre, de modo que si varios torrentes incluyen los mismos archivos, pero los sembradores solo estan sembrando el archivo de algunos, los descargadores de los otros torrents aun pueden descargar el archivo. Los enlaces magneticos para v2 tambien admiten un modo hibrido para garantizar la compatibilidad con clientes heredados

BitTorrent en comparacion con otras redes P2P [ editar ]

Captura de pantalla del cliente BitTorrent Deluge .

El metodo 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 rapidas ya que todos los nodos en un grupo se concentran en transferir un solo fichero o una coleccion de los mismos. Ademas el protocolo eDonkey2000 no premia a aquellos usuarios que comparten un mayor ancho de banda. Sin embargo, hay que aclarar que el cliente mas extendido para la red eDonkey, el eMule , si incorpora un sistema de creditos para recompensar a los que mas comparten.

Al contrario que otras redes de intercambio, BitTorrent no incluye ningun mecanismo de busqueda de archivos. Los usuarios de BitTorrent deberan localizar por sus propios medios los archivos torrent que necesita el protocolo. Normalmente, estos archivos pueden descargarse desde las paginas web que publican grandes archivos (como las distribuciones GNU/Linux ) o desde indices web de busqueda (como The Pirate Bay ).

La implementacion original de BitTorrent fue programada en Python , aunque hoy en dia se pueden encontrar clientes escritos en C o en Java por ejemplo.

Segun CacheLogic , [ 8 ] ​ durante el ano 2005 BitTorrent se utilizaba especialmente en Asia , mientras que eDonkey2000 se preferia en Europa y America .

Programas cliente [ editar ]

Los clientes de BitTorrent se pueden encontrar de dos tipos distintos:

Estructura de una red BitTorrent [ editar ]

Funcionamiento de una red BitTorrent.

Una red en Bittorrent esta formada por:

  • Peers (pares): Se denomina asi a todos los usuarios que estan en la red.
  • Leechers ( sanguijuelas ): Se denomina asi a todos los usuarios que estan en la red descargando el archivo pero que todavia no tienen el archivo completo. Tambien 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 informacion necesaria para que los pares se conecten unos con otros. Inicialmente es la unica forma de localizar que 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 analogia, el rastreador es el panal de abejas, el enjambre de abejas son los usuarios y la miel es el torrent con el contenido.

Mecanica del funcionamiento de BitTorrent:

  1. Un usuario baja de un servidor web un archivo .torrent que contiene la informacion del fichero que queremos descargar. Entre otra mucha informacion contiene la direccion del rastreador al que nos tenemos que conectar para unirnos al enjambre de pares (el .torrent generalmente es un archivo muy pequeno, de unos pocos kilobytes ).
  2. Este archivo .torrent se abre con algun "programa cliente", que sabe interpretar dicha informacion. Existen multitud de clientes gratuitos que se pueden utilizar. Entre los mas populares estan μtorrent , Bitcomet , Vuze (anteriormente Azureus ). Todos estan basados en el protocolo BitTorrent original pero algunos de ellos incluyen mejoras al protocolo.
  3. El rastreador y el par se comunican a traves de una 'conexion HTTP'. El rastreador informa de la lista de todos los pares y semillas que contienen partes del archivo que queremos descargar. El rastreador se actualiza con la informacion del nuevo par que acaba de ingresar.
  4. Una vez que el par sabe donde tiene que buscar las partes necesarias, este par se comunica con otros mediante 'sockets TCP' o 'UDP' y el archivo empieza a descargarse en el ordenador del usuario. Cada parte descargada se comparte automaticamente con otros pares .

Archivos .torrent y su codificacion interna [ editar ]

Los archivos .torrent contienen informacion acerca del archivo que queremos bajar. Esta informacion esta codificada mediante Bencoding .

Si abrimos con un editor de texto un archivo .torrent nos encontramos con un diccionario que contiene las siguientes claves:

  • info : Un diccionario que describe los archivos del torrent. Puede tener una u otra estructura dependiendo de si el torrent es para bajar un archivo o varios archivos con una jerarquia de directorios.
  • announce : cadena que representa la URL del rastreador
  • announce-list : (lista de cadenas opcional). Se usa para representar listas de rastreadores alternativos. Es una extension a la especificacion original.
  • creation date : (entero opcional) La fecha de creacion del torrent en formato de epoca UNIX.
  • comment : (cadena opcional) Campo libre para el creador del torrent.
  • created by : (cadena opcional) Nombre y version del programa usado para crear el archivo torrent.

El diccionario info que acabamos de citar contiene a su vez las siguientes claves:

  • name : (cadena) El nombre del archivo o directorio donde se almacenaran los archivos.
  • piece length : Como dijimos en la introduccion, el archivo que queremos compartir es dividido en piezas. Este parametro es un entero que representa el numero de bytes de cada pieza. Piezas demasiado grandes causan ineficiencia y piezas demasiado pequenas forman un archivo .torrent mas pesado. Actualmente se aconseja fijar el tamano de cada pieza en 512 KB o menos para archivos de varios GBs.
  • pieces : Cadena que representa la concatenacion de la lista de claves hash de cada parte del fichero compartido. Las claves hash son generadas utilizando SHA-1 con un resumen de 160 bits y un tamano maximo por parte de 2^64 bits. Este conjunto de claves se utiliza como mecanismo para asegurar la integridad y consistencia de una parte, una vez ha sido completada la descarga de dicha parte.
  • private : (opcional). Es un entero que puede tener valores 0 o 1 y que indica si se pueden buscar pares fuera de los rastreadores explicitamente descritos en la metainformacion o no.
  • length : (entero) Longitud del archivo en bytes.
  • md5sum : (cadena opcional). Es una cadena hexadecimal de 32 caracteres correspondiente a la suma MD5 del archivo.
  • files : Solo aparecera en el caso de que sea un torrent multi archivo. Es una lista de diccionarios (uno para cada archivo, pero con una estructura diferente a info). Cada uno de estos diccionarios contendra a su vez informacion sobre la longitud del archivo, la suma MD5 y una ruta (path) en donde debe ubicarse el archivo en la jerarquia de directorios.

Algoritmos: seleccion de piezas y seleccion de pares [ editar ]

En esta seccion se van a explicar detalladamente las reglas segun las cuales se elige a uno u otro usuario para compartir partes del archivo y que partes son las que se transmiten.

En primer lugar vamos a describir unos cuantos terminos importantes:

  • Piezas y bloques . Los archivos transmitidos usando Bittorrent se dividen en piezas y estas a su vez se dividen en bloques. Los bloques son la unidad de transmision en la red, pero las piezas parcialmente recibidas no pueden ser servidas por un par hasta que esten completas, es decir que se tengan todos sus bloques.
  • Interested . Se dice que un par A esta interesado en el par B (A esta en el estado Interested) cuando el par B tiene piezas que el par A no tiene. Por el contrario, el par A no esta interesado en el par B cuando el par B solo tiene un subconjunto de las piezas del par A.
  • Choked (bloqueado). Se dice que el par A bloquea al par B (B esta en el estado bloqueado) cuando el par A decide no enviar piezas al par B. Por el contrario, se dice que el par A desbloquea al par B cuando el par A decide enviar piezas al par B.
  • Conjunto de pares . Cada par mantiene una lista de los pares que conoce.
  • Pares locales y remotos . Se llama par local al par que esta ejecutando el cliente bittorrent y pares remotos a los pares que estan en el conjunto de pares del par local.
  • Conjunto de pares activos . El par A solo puede enviar datos a un subconjunto de su conjunto de pares. A este conjunto se le llama conjunto de pares activos. El algoritmo de bloqueo, que veremos mas adelante, determina los pares que formaran parte del conjunto de pares activos. Solamente los pares que estan desbloqueados por el par local e interesados en el son parte del conjunto de pares activos.
  • Piezas mas raras y conjunto de las piezas mas raras . Las piezas mas raras son las que tienen menos numero de copias en el conjunto de pares. En el caso de que la pieza menos replicada en el conjunto de pares tenga m copias, entonces todas las piezas con m copias forman el conjunto de las piezas mas raras.

Algoritmo de “las piezas mas raras primero” ( rarest first algorithm ) [ editar ]

Este algoritmo define la estrategia usada por el protocolo Bittorrent para seleccionar la siguiente pieza a descargar. Cada par mantiene una lista del numero de copias de cada pieza en su conjunto de pares y usa esta informacion para definir su conjunto de las piezas mas raras. Sea m el numero de copias de la pieza mas rara, entonces la posicion de cada pieza con m copias en el conjunto de pares es anadida al conjunto de las piezas mas raras. Cada par selecciona aleatoriamente la siguiente pieza para bajar de su conjunto de las piezas mas raras.

El comportamiento de este algoritmo puede ser modificado por 3 causas:

  1. Si un par ha bajado menos de 4 piezas, este elige aleatoriamente la proxima pieza para bajar. Una vez que se han descargado estas 4 piezas, el algoritmo funciona de la manera descrita anteriormente. La razon de este comportamiento inicial es permitir que un par baje sus primeras piezas muy rapidamente, ya que es importante tener algunas piezas para empezar a intercambiar en el Algoritmo de Bloqueo. De hecho, una pieza elegida aleatoriamente tiene muchas mas copias que las piezas mas raras, asi que probablemente el tiempo de bajada sera menor seleccionandola aleatoriamente.
  2. La segunda causa es que cuando uno de los bloques de una pieza se ha pedido, los otros bloques de la misma pieza se piden con la prioridad mas alta. La razon de este comportamiento es completar la descarga de una pieza completa lo antes posible, dado que solo las piezas completas pueden ser enviadas.
  3. La ultima causa es el modo de fin de juego (End Game Mode). Este modo empieza muy al final de la descarga, cuando el par pide todos los bloques que todavia no han sido recibidos a todos los pares de su conjunto de pares que tienen esos bloques. Cada vez que se recibe un bloque, el par cancela la peticion para el bloque recibido a todos los pares en su conjunto de pares que tienen la peticion activa.

Algoritmo de bloqueo ( choke algorithm ) [ editar ]

Este algoritmo define la estrategia usada por el protocolo BitTorrent para seleccionar el siguiente par con el que va a interactuar. Se usa para garantizar una buena relacion subida/bajada entre los pares. Por ejemplo los “free riders”, pares que nunca suben, deben penalizarse. El algoritmo se describe desde el punto de vista del par local, asi que “interesado” significa interesado en el par local y “bloqueado” significa bloqueado por el par local. El algoritmo funciona asi:

  1. Como maximo 4 pares remotos pueden estar desbloqueados e interesados a la vez.
  2. Cada 10 segundos, los pares remotos interesados se ordenan de acuerdo a su velocidad de bajada hacia el par local y los 3 mas rapidos son desbloqueados.
  3. Cada 30 segundos, un par interesado adicional se desbloquea aleatoriamente. Esto se llama “Desbloqueo Optimista” (Optimistic Unchoke), que tiene dos objetivos: permite evaluar la capacidad de bajada de nuevos pares en el conjunto de pares y tambien posibilita que los pares que no tienen ninguna pieza que compartir puedan obtener su primera pieza.

Limitaciones y ataques [ editar ]

Se considera que lo justo es subir la misma cantidad de datos que se ha bajado, es decir que la tasa de descarga/subida sea de 1, pero este comportamiento no es comun ni esta garantizado en BitTorrent. Normalmente los usuarios se desconectan rapidamente una vez que han obtenido la copia completa de su archivo. Esto se denomina leeching .

Esta forma de actuar provoca que aunque todo el contenido nuevo se comparta al principio muy rapidamente, con el paso de los dias el torrent caduque porque no quedan semillas, ya que BitTorrent solo ofrece incentivos a los leechers pero no a las semillas que no obtienen ninguna ventaja por permanecer subiendo a la red.

Para evitar esto han aparecido los denominados rastreadores privados. Normalmente para usar un rastreador privado hay que identificarse previamente. Para cada usuario registrado guardan las estadisticas de trafico y utilizan un sistema de porcentajes que permite saber si el usuario comparte o no los datos que haya descargado o este descargando. Muchos de estos rastreadores suelen expulsar a los usuarios que tienen un porcentaje bajo, ya que al no compartir no colaboran con la red.

Otro punto flaco es que el rastreador es un cuello de botella ya que consume el 1 por mil del trafico total de la red. Teniendo en cuenta la cantidad de datos que circulan en una red de este tipo, es un porcentaje a tener en cuenta. Ademas, la caida del rastreador implica que nuevos pares no se puedan conectar y que aquellos que ya estan conectados no puedan descubrir otros. Conceptualmente se forman pequenas islas desorganizadas, donde en realidad todos los nodos estan conectados entre si a traves de vecinos pero no hay comunicacion entre esas islas (la comunicacion entre ellas la gestionaba el rastreador) y por tanto influye muy negativamente en la descarga.

Una debilidad mas de BitTorrent es que es poco eficiente en transferencias de archivos pequenos (unos cuantos kb) ya que el ancho de banda usado en mensajes del protocolo es comparativamente alto.

Al contrario que otros famosos programas P2P como Kazaa o Emule, los clientes Bittorrent carecen de alguna utilidad de busqueda de contenidos. Los archivos .torrent se suelen bajar de paginas web donde se suelen indexar las novedades o bien existen buscadores de torrents como mininova.org o The Pirate Bay, este metodo garantiza que se este descargando el fichero correcto. Recientemente la justicia sueca ha condenado a los webmasters de The Pirate Bay a multas y penas de carcel por colaboracion en la distribucion de archivos con copyright, a pesar de que los contenidos en si no estan albergados en sus servidores.

Por otra parte, BitTorrent tiene un protocolo considerado de los de modelo economico. Es inocente, no esta preparado para clientes maliciosos, y por tanto el protocolo no presenta soluciones para posibles ataques a traves de este tipo de clientes.

A continuacion vamos a ver algunos ejemplos de estos ataques:

  • Denegacion de servicio a traves de un ataque Sybil

Cada par genera un unico identificador al comienzo mediante un hash de su direccion IP y la hora. Si un par generara multiples identificadores podria ocurrir que el conjunto de pares activos de los otros pares de la red solo estuviera formado por multitud de identificadores falsos del mismo par atacante, y de esta manera solo se servirian datos a el.

  • Ataque de “Solo a semillas”

Un par tiene que subir a los otros pares si quiere formar parte de su conjunto de pares activos. Si un par solo se conecta a semillas, podria bajarse el archivo entero sin necesidad de haber compartido ni una sola pieza.

  • Ataque de “Subida corrupta”

Bittorrent verifica la integridad de la pieza una vez descargada comparando su codigo hash con el que aparecia en la metainformacion del torrent. Cuando un par pide un bloque a un par malicioso, este puede decir que lo tiene aunque en realidad no sea asi. Lo que le envia es basura, aunque el otro par no se da cuenta hasta que le ha llegado la pieza entera y vuelve a pedir el bloque. Aunque se le estan enviando datos corruptos, la tasas de subida si son actualizadas y el par malicioso puede mantenerse en la lista de pares preferidos.

Los clientes BitTorrent actuales cuando reciben varios bloques corruptos de un mismo cliente anaden su direccion IP a una lista de usuarios bloqueados y de esta forma solucionan este problema.

Ventajas [ editar ]

  • El protocolo de igual a igual proporciona una descarga mejor y segura, ya que no depende solo del servidor central principal. Si una fuente no esta activa, puede confiar en otras fuentes para completar el proceso de descarga.
  • Si hay interrupciones en su conexion a Internet o la computadora se apaga repentinamente, no es necesario comenzar desde cero. Una vez que vuelva a estar en linea, continuara con el proceso.
  • Puede encontrar y descargar archivos Torrent facilmente. Hay muchas fuentes y sitios Torrent que proporcionan contenido de calidad.
  • Incluso si se tiene una conexion lenta, se puede descargar un archivo Torrent muy rapido, en comparacion con los metodos de descarga tradicionales.

Desventajas [ editar ]

  • Las semillas son cruciales para descargar archivos Torrent. Si un archivo Torrent no tiene semillas, no podra continuar con el proceso.
  • No hay forma de revisar el archivo antes de descargarlo. podra ver lo que contiene el archivo, pero no podra ver la calidad. La unica forma de realizar un control de calidad es confiando en los comentarios en linea de otras personas.
  • Con los clientes de BitTorrent, esta cargando y descargando archivos al mismo tiempo. Este proceso puede afectar significativamente la velocidad de su conexion a Internet.
  • Se expone la direccion IP a muchas personas en el enjambre. Si desea proteger la privacidad, debe usar VPN.
  • Hay muchas discusiones en Internet sobre el lado etico del uso de torrents. Sin embargo, en la era de Internet y las redes sociales, es realmente dificil mantener su trabajo protegido y a salvo de la duplicacion.
  • Los clientes de Torrent son solo una herramienta para una descarga mas rapida y conveniente de valioso material en linea. No tenemos que culpar a los clientes de la distribucion ilegal.

Mejoras al protocolo [ editar ]

El protocolo Bittorrent es susceptible de ser mejorado, por lo que algunos clientes han incorporado diversas modificaciones como DHT, Web Seeding y Super Seeding:

DHT [ editar ]

Si el rastreador cae, dependemos de los pares a los que estemos conectados para poder finalizar una descarga. No siempre se consigue puesto que es necesario que no se desconecten y que entre todos tengan el archivo completo.

El DHT (Distributed Hash Table) es una extension oficial al protocolo de Bittorrent. Consiste en que cada nodo de la red conserva informacion de los nodos vecinos. De esta forma se evita el cuello de botella del rastreador del que hemos hablado antes, ya que si el rastreador cae la totalidad de la informacion de los pares esta todavia disponible en los propios pares.

Se puede considerar como una descentralizacion del protocolo, aunque todavia no es completa porque todavia se depende del rastreador para bajarse el .torrent y empezar a conocer los primeros nodos.

El uso del DHT y la comunicacion entre nodos sin el paso por el rastreador comporta una independencia del nodo que a veces puede no interesar, como en el caso de los rastreadores privados, donde se suelen aplicar ciertas restricciones al usuario segun sus estadisticas y donde es requisito comun el estar registrado (como minimo) para poder entrar en la red.

Debido a esto, y para evitar que los administradores de los rastreadores privados banearan a los usuarios de clientes con DHT activado, se ha anadido la posibilidad de establecer un nuevo parametro en el archivo .torrent llamado “Private Flag”. Cuando el cliente lee esta opcion automaticamente desactiva el DHT para esa descarga. Este tipo de parametro es compatible con todos los clientes. Asi si uno no implementa DHT lo omitira sin mas.

Sembrado web [ editar ]

En muchas ocasiones en una misma pagina web aparecen enlaces HTTP o FTP ademas del archivo .torrent como posibles alternativas para bajar un archivo. La idea del sembrado web (en ingles webseeding) es combinar la potencia de la descarga directa del servidor con la del P2P. De esta manera siempre habria como minimo una semilla completa de la que descargar inicialmente. El primer cliente en incluir esta mejora fue BitTornado.

Supersiembra [ editar ]

The Pirate Bay es uno de los directorios de torrents mas populares.

La supersiembra ? en ingles superseeding (Vuze) o initial seeding (μtorrent) ? sirve para que la primera semilla que sube un nuevo archivo pueda reducir el numero de piezas que tiene que subir para crear las primeras semillas y para que los pares que lo estan bajando lo puedan hacer mas rapidamente.

Cuando una semilla “A” entra a un enjambre en modo supersiembra, no aparece en el enjambre como una semilla normal con el 100% del archivo sino que se oculta como un leecher normal que no tiene ningun dato. A medida que otros pares entran en el enjambre, la semilla inicial (el par disfrazado) les manda un mensaje de que tiene una nueva pieza ? una pieza que en realidad nunca ha sido enviada. Esto hara que el par “B” del enjambre pida solamente ese trozo.

Cuando el par “B” termina de descargar aquella pieza, la semilla "A" no le comunicara que tiene otras piezas para enviar hasta que vea que la primera pieza que le envio a "B" haya sido compartida con al menos otro par “C”. Mientras eso no pase, el par “B” no tendra acceso a ninguna de las demas piezas de la semilla “A”, y asi “A” no desperdiciara su ancho de banda de subida teniendo que volver a enviar piezas que ya ha enviado.

Buscadores de archivos torrent [ editar ]

Debido a la gran proliferacion de este tipo de descargas P2P, han aparecido en la red motores de busqueda personalizados y especializados en encontrar archivos torrent alojados en servidores como The Pirate Bay u otros.

Vocabulario BitTorrent [ editar ]

La siguiente lista contiene los principales terminos usados en la jerga del protocolo BitTorrent.

Disponibilidad ( availability )

Es el numero de copias completas de un archivo que estan disponibles para la descarga. Cada semilla anade 1,0 a este numero, porque tienen el archivo completo. Un usuario con el archivo incompleto anade una fraccion a la disponibilidad, si ningun usuario mas tiene esa parte. Por ejemplo, un usuario que tiene descargado el 65.3% del archivo aumenta la disponibilidad en 0,653. Sin embargo, si dos usuarios tienen descargada la misma parte del archivo, 50% por ejemplo, y solo hay una semilla, la disponibilidad es 1.

Cliente ( client ) [ editar ]

Es el programa informatico que permite el intercambio de archivos peer-to-peer usando el protocolo BitTorrent. Algunos ejemplos de clientes son Transmission , μTorrent y Vuze .

Salud ( health )

La salud de un archivo torrent esta relacionada con la disponibilidad. En los directorios de archivos torrent normalmente se muestra como un porcentaje e indica el tanto por ciento del archivo que esta disponible. Un archivo con una salud del 50% significa que solo esta disponible la mitad del archivo, por lo que no es posible descargarlo entero.

Directorio ( index )

Un directorio o indice BitTorrent es una pagina web que contiene una lista de archivos torrent (normalmente tambien incluyen una descripcion y otra informacion) y un buscador . Algunos directorios tambien disponen de un rastreador propio.

Vease tambien [ editar ]

Referencias [ editar ]

  1. Johnsen, Jahn Arne (2005). ≪Peer-to-peer networking with BitTorrent≫ . Peer-to-peer networking with BitTorrent . Consultado el 04/06/2023 .  
  2. Cohen, Bram (2 de julio de 2001). ≪BitTorrent ? a new P2P app≫ . Yahoo eGroups. Archivado desde el original el 5 de septiembre de 2013 . Consultado el 15 de abril de 2007 .  
  3. BitTorrent and μTorrent Software Surpass 150 Million User Milestone
  4. BitTorrent Has More Users Than Netflix and Hulu Combined--and Doubled
  5. Bram Cohen (10 de enero de 2008). ≪The BitTorrent Protocol Specification≫ . BitTorrent.org . Consultado el 20 de noviembre de 2010 .  
  6. Estimating 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
  7. ≪https://twitter.com/ubengineering/status/357131210503356419≫ . Twitter . Consultado el 19 de diciembre de 2022 .  
  8. CacheLogic Announces eDonkey Has Become World's Largest P2P File Trading Network, Surpassing BitTorrent

Enlaces externos [ editar ]