¿Cómo reordenan y almacenan los clientes torrent?

9

Me preguntaba, ¿cómo se almacenan y vuelven a montar las piezas descargadas por los clientes de torrent? ¿Usan metadatos? Parece que este no es el caso ya que uno puede reproducirlos si son archivos a medio formar. No tengo idea de cómo se hace esto? Entonces, básicamente, me pregunto cómo están organizadas las piezas del archivo descargado. ¿Es solo del primero al último, o hay espacios intermedios en el medio?

Cenoc
fuente
¿Hay alguna forma de descargar piezas descargadas a medias después de volver a verificar?. Mi conexión es como acceso telefónico ...... Así que por favor ayuda.

Respuestas:

19

¡Bienvenido al maravilloso mundo de Torrents! Hay algunas piezas que comprenden el protocolo Bittorrent: tiene su archivo, legalthing.iso y desea distribuirlo a la mayor cantidad de personas posible. Entonces crea un archivo "torrent", que describe legalthing.iso, y distribuye el archivo torrent a través de un sitio web, o de cualquier otra forma que desee. El archivo torrent puede apuntar directamente a su computadora (y usted estaría actuando como la semilla) o el archivo torrent puede apuntar a un "rastreador", que es un servidor que conecta las "semillas" (usuarios con todo el legalthing.iso archivo ya) y "pares" (usuarios que están descargando activamente el archivo).

Acercándome a tu pregunta ahora. El archivo en sí, legalthing.iso, se codifica criptográficamente para que cada persona que lea el archivo torrent y comience a descargar legalthing.iso pueda verificar cada pieza con el hash y asegurarse de que no descarguen una pieza que se ha modificado del original. Las piezas que no pasan las comprobaciones hash se descartan.

Ahora imagina que eres una computadora descargando un archivo, usando Bittorrent. El protocolo puede funcionar de dos maneras: descargará partes aleatorias del archivo o primero descargará las partes más raras. Este último enfoque es aumentar la "salud" general (disponibilidad) del torrent.

Entonces, ¿qué hay en el archivo torrent real? Varía según el cliente utilizado para hacerlo, pero generalmente contiene una sección de "anuncio" que es la dirección del rastreador que está utilizando y una gran lista de todas las partes del archivo que desea descargar. Cada pieza es de un tamaño uniforme (32 kb, 512kb, 4mb, realmente cualquier tamaño que desee) y cada pieza tiene un hash asociado. Cada vez que un compañero obtiene una pieza, compara el hash de esa pieza (utilizando el código hash SHA-1) con el hash que figura en el archivo torrent. Así es como se da cuenta de que las piezas son buenas.

Dado que el archivo torrent enumera cada parte del archivo que está descargando, cada vez que su cliente descarga con éxito una pieza y la copia en hash, la escribe en la posición correcta en el disco duro dentro del archivo. Es por eso que si descarga un archivo de 1 gb, el cliente reservará un bloque de espacio vacío en su disco de 1 gb de tamaño, para acomodar las piezas de torrent que descargará.

Ahora, algunos reproductores de video y otros visores de archivos pueden manejar archivos "corruptos". por supuesto, un torrent medio descargado no está dañado, pero le faltan piezas y para un programa como VLC, simplemente parece roto. Por lo tanto, VLC hará lo mejor que pueda para reproducir los datos que pueda encontrar y es por eso que pueden reproducirse mientras se descargan parcialmente.

Hay muchos aspectos más complicados (google DHT, almacenamiento en búfer de escritura de torrent, todas esas cosas divertidas) pero eso es lo básico de cómo funciona Bittorrent.

geodave
fuente
Wow, esa es una respuesta muy completa ... pero nunca me he dado cuenta de que realmente está dejando de lado un archivo de 1GB. Parece que crece de forma incremental?
Cenoc
1
@Cenoc depende del cliente de torrent, algunos clientes preasignan, otros no, algunos tienen preferencias adicionales para preasignar
Sathyajith Bhat
Interesante, entonces, ¿al principio es solo un archivo lleno de '0' y luego, cuando el archivo parcialmente descargado se verifica por primera vez, se compara con los hashes?
Cenoc
1
Es un contenedor vacío para el archivo completo eventual, y a medida que el cliente descarga cada pieza, se compara con el hash y luego se coloca en el lugar apropiado en el contenedor hasta que se complete el archivo completo.
geodave
1
Como mencionó Sathya, depende del cliente. Algunos preasignarán un espacio en su disco duro para todo el archivo; reservará un montón de espacio, y otros programas no podrán usar ese espacio en la unidad, hasta que se descargue su archivo. Otros clientes de bittorrent colocarán las piezas completadas en una ubicación de almacenamiento temporal para ahorrar espacio en el disco y luego ensamblarán el archivo completo una vez que se hayan descargado todas las piezas. Depende de la configuración que elija.
geodave