Archivo torrent

formato de archivo

Un archivo torrent almacena metadatos sobre archivos y carpetas que se van a distribuir y van a ser usados por un cliente de BitTorrent. Está definido en la especificación de BitTorrent.[1]​ Simplemente, un torrent es información acerca de un archivo de destino, aunque no contiene información acerca del contenido del archivo. La única información que contiene el torrent es la localización de diferentes piezas del archivo de destino. Los torrents funcionan dividiendo el archivo de destino en pequeños fragmentos de información, localizados en un número ilimitado de hosts diferentes. Por medio de este método, los torrents son capaces de descargar archivos grandes rápidamente. Cuando un cliente (el receptor del archivo de destino) ha iniciado una descarga por torrent, los fragmentos del archivo de destino que son necesitados pueden ser encontrados fácilmente, basado en la información del torrent. Una vez que todos los fragmentos son descargados, el cliente puede ensamblarlos en una forma utilizable. Nota: la descarga debe ser completada antes de que pueda ensamblarse en una forma utilizable.

Archivo torrent
Información general
Extensión de archivo .torrent
Tipo de MIME application/x-bittorrent
Extendido de Bencode
Estándar(es) BEP-0003[1]
Formato abierto ?

Un archivo torrent contiene las URL de muchos trackers[2]​ y la integridad de los metadatos de todos los fragmentos. También puede contener metadatos adicionales definidos en extensiones de la especificación de BitTorrent.[3]​ Estos son conocidos como propuestas de mejora de BitTorrent. Ejemplos de tales propuestas incluyen metadatos para informar de quién ha creado el torrent y cuándo.

Los archivos torrent utilizan normalmente la extensión .torrent.

Estructura del archivo

editar

Un archivo torrent es un diccionario Bencode con las siguientes claves:

  • announce - la URL del tracker
  • info - esto crea un diccionario cuyas claves son independientes de si uno o más archivos son compartidos:
    • name - directorio sugerido donde el o los archivos serán guardados
    • piece length - número de bytes por pieza. Es comúnmente 218 = 256 KiB = 262,144 B.
    • pieces - una lista de hash. Esto es la concatenación de cada hash SHA-1 de las piezas. Debido a que SHA-1 devuelve un hash de 160 bits, pieces será una cadena cuya longitud será un múltiplo de 160 bits.
    • length - tamaño del archivo en bytes (solo cuando un archivo es compartido)
    • files - una lista de diccionarios cada uno correspondiente a un archivo (solo cuando múltiples archivos son compartidos). Cada diccionario tiene las siguientes claves:
      • path - una lista de cadenas correspondientes a los nombres de los subdirectorios, el último de los cuales será el verdadero nombre del archivo
      • length - tamaño del archivo en bytes.

Todas las cadenas deben ser codificadas con UTF-8.

Extensiones

editar

Extensiones borrador

editar

Estas extensiones de la especificación BitTorrent están en consideración para estandarizarse. Los archivos torrent usan la extensión .torrent.

Tablas de hash distribuido

editar

BEP-0005[4]​ extiende BitTorrent para soportar tablas de hash distribuido.

Un diccionario torrent sin trackers no tiene la clave announce. En lugar de eso, un torrent sin trackers tiene la clave nodes:

{
...
'nodes': [["<host>", <port>], ["<host>", <port>], ...] 
...
}

Por ejemplo,

 'nodes': [["127.0.0.1", 6881], ["your.router.node", 4804]] 

La especificación recomienda que nodes "debería establecerse a los K nodos más cercanos en la tabla de ruta del cliente generada por el torrent. Alternativamente. la clave se podría establecer a un buen nodo conocido como uno operado por la persona que generó el torrent."

Múltiples trackers

editar

BEP-0012[5]​ extiende el soporte de BitTorrent a múltiples trackers.

Una nueva clave, announce-list, es ubicada en la parte superior de la lista (por ejemplo con announce y info)

...
}

HTTP seeds

editar

BEP-0017[6]​ extiende el soporte de BitTorrent a HTTP seeds.

Una nueva clave, httpseeds, es ubicada en la parte superior de la lista (por ejemplo con announce y info). El valor de esta clave es una lista de las direcciones web donde el torrent puede ser recuperado:

{
...
'httpseeds': ['http://www.site1.com/source1.php', 'http://www.site2.com/source2.php']
...
}

Torrents privados

editar

BEP-0027[7]​ extiende el soporte de BitTorrent a torrents privados.

Una nueva clave, private, es ubicada en el diccionario de info. El valor de esta clave es 1 si el torrent es privado:

{
...
'private': 1
...
}

Hash trees

editar

BEP-0030[8]​ extiende el soporte de BitTorrent a árboles de hash.

Un archivo torrent que use árboles hash no tiene la clave pieces en la lista info. En lugar de eso, tal archivo torrent tiene la clave root hash en la lista info. El valor de esta clave es el hash raíz del árbol de hash:

{
...
'info': {
...
'root hash': e6bdebcc5d55da0a77f4bb1b57d88de794838577
...
}
...
}

Ejemplos

editar
ARCHIVOS MÚLTIPLES, aquellos archivos que conservan los documentos de varias instituciones

Múltiples archivos

editar

Así es como un archivo torrent sin Bencode (con piece length 256KiB = 262144) para dos archivos, 111.txt & 222.txt, podría verse:

{'announce': 'http://tracker.site1.com/announce' (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).,
'info: {
   'name': 'directoryName',
   'piece length': 262144,
   'files': [ {'path': '111.txt', 'length': 111}, {'path': '222.txt', 'length': 222} ],
   'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb...8a43d9d965a47f75488d3fb47d2c586337a20b9f'
  }
}

Véase también

editar

Referencias

editar
  1. a b «BEP-0003: The BitTorrent Protocol Specification». Bittorrent.org. Consultado el 22 de octubre de 2009. 
  2. «The Basics of BitTorrent». Archivado desde el original el 2 de septiembre de 2019. Consultado el 2 de septiembre de 2019. 
  3. «BEP-0000: Index of BitTorrent Enhancement Proposals». Bittorrent.org. Consultado el 22 de octubre de 2009. 
  4. «BEP-0005: DHT Protocol». Bittorrent.org. Consultado el 22 de octubre de 2009. 
  5. «BEP-0012: Multitracker Metadata Extension». Bittorrent.org. Consultado el 22 de octubre de 2009. 
  6. «BEP-0017: HTTP Seeding». Bittorrent.org. Consultado el 22 de octubre de 2009. 
  7. «BEP-0027: Private Torrents». Bittorrent.org. Consultado el 22 de octubre de 2009. 
  8. «BEP-0030: Merkle hash torrent extension». Bittorrent.org. Consultado el 22 de octubre de 2009. 

Enlaces externos

editar