Je me demandais, comment les morceaux téléchargés par les clients torrent sont-ils stockés et réassemblés? Utilisent-ils des métadonnées? Il semble que ce ne soit pas le cas car on peut les lire s'il s'agit de fichiers à moitié formés? Je ne sais pas comment cela se fait? Donc, fondamentalement, je demande comment sont organisées les pièces du fichier téléchargé? Est-ce juste du premier au dernier, ou y a-t-il des espaces tampons entre les deux?
bittorrent
Cenoc
la source
la source
Réponses:
Bienvenue dans le monde merveilleux de Torrents! Il y a quelques morceaux qui composent le protocole Bittorrent: vous avez votre fichier, legalthing.iso et vous souhaitez le distribuer au plus grand nombre. Vous créez donc un fichier "torrent", qui décrit legalthing.iso, et vous distribuez le fichier torrent via un site Web ou de toute autre manière que vous souhaitez. Le fichier torrent peut pointer directement vers votre ordinateur (et vous agiriez comme la graine) ou le fichier torrent peut pointer vers un "tracker", qui est un serveur qui connecte les "graines" (les utilisateurs avec tout legalthing.iso fichier déjà) et «pairs» (utilisateurs qui téléchargent activement le fichier).
Se rapprocher de votre question maintenant. Le fichier lui-même, legalthing.iso, est haché cryptographiquement afin que chaque personne qui lit le fichier torrent et commence à télécharger legalthing.iso puisse vérifier chaque pièce par rapport au hachage et s'assurer qu'elle ne télécharge pas une pièce qui a été modifiée par rapport à l'original. Les pièces qui échouent aux vérifications de hachage sont jetées.
Imaginez maintenant que vous êtes un ordinateur téléchargeant un fichier, en utilisant Bittorrent. Le protocole peut fonctionner de deux manières, soit vous téléchargerez des morceaux aléatoires du fichier, soit vous téléchargerez d'abord les morceaux les plus rares. Cette dernière approche consiste à augmenter la «santé» globale (disponibilité) du torrent.
Alors, que contient le fichier torrent? Cela varie en fonction du client utilisé pour le faire, mais généralement il contient une section "annonce" qui est l'adresse du tracker que vous utilisez, et une grande liste de tous les morceaux du fichier que vous souhaitez télécharger. Chaque pièce est de taille uniforme (32 ko, 512 ko, 4 Mo, vraiment n'importe quelle taille que vous aimez) et chaque pièce est associée à un hachage. Chaque fois qu'un pair obtient un morceau, il compare le hachage pour ce morceau (en utilisant le code de hachage SHA-1) avec le hachage répertorié dans le fichier torrent. C'est comme ça que les pièces sont bonnes.
Étant donné que le fichier torrent répertorie chaque morceau du fichier que vous téléchargez, chaque fois que votre client télécharge avec succès un morceau et le hache, il écrit la pièce à la bonne position sur le disque dur dans le fichier. C'est pourquoi si vous téléchargez un fichier de 1 Go, le client mettra de côté un bloc d'espace vide sur votre disque d'une taille de 1 Go, pour accueillir les morceaux de torrent que vous téléchargerez.
Maintenant, certains lecteurs vidéo et autres visionneuses de fichiers peuvent gérer les fichiers "corrompus". bien sûr, un torrent à moitié téléchargé n'est pas corrompu, mais il manque des morceaux et pour un programme comme VLC, il semble juste cassé. VLC fera donc de son mieux pour lire toutes les données qu'il peut trouver et c'est pourquoi ils peuvent jouer lorsqu'ils sont partiellement téléchargés.
Il y a des aspects beaucoup plus compliqués (google DHT, tampon d'écriture torrent, toutes ces choses amusantes) mais c'est les bases du fonctionnement de Bittorrent.
la source