Pourquoi la distribution de morceaux aléatoires d'un fichier est-elle plus rapide qu'un transfert contigu?


17

Pourquoi dit-on que BitTorrent est plus rapide, en partie, parce qu'il transfère des morceaux aléatoires d'un fichier au lieu de le transférer du début à la fin de manière contiguë / linéaire?


EDIT: Mais pourquoi doivent- ils être «aléatoires»? Pourquoi pas un transfert «semi-contigu» plus prévisible dans lequel un pair vous donne la première moitié et le deuxième pair l'autre moitié? Cela réduirait théoriquement les frais généraux.

Réponses:


6

Concernant l'édition demandant pourquoi ils doivent être aléatoires: Disons que les torrents ont été modifiés pour ne télécharger que le premier bloc que le téléchargeur ne possède pas déjà, garantissant ainsi un transfert contigu.

Je partage ensuite un fichier de 100 Mo. 10 personnes se connectent et téléchargent chacune 50 Mo avant de se déconnecter.

Ces gens sont alors foutus, car ils ont tous la première moitié du dossier, alors que moi seul j'ai la seconde moitié. Jusqu'à ce que je le rende à nouveau disponible, ils ne peuvent pas terminer le téléchargement.

Au lieu de cela, avec les blocs transférés dans un ordre aléatoire comme c'est le cas, chacune de ces 10 personnes a un ensemble différent de blocs, afin qu'ils puissent échanger entre eux afin de terminer leurs téléchargements sans avoir besoin de moi.

Encore mieux, cependant, parce que chacun d'eux a un ensemble différent de blocs, chacun d'eux peut télécharger à partir de tousdes autres pour combler les lacunes de leur copie. Votre modification a fait allusion à l'idée de commencer à partir d'un point aléatoire dans le fichier et de télécharger de manière contiguë à partir de ce point, mais cela augmenterait la quantité de chevauchement d'une copie du téléchargeur à la suivante (si Alice démarre au début du fichier et Bob démarre 10% dedans, puis il y a 40% du fichier qu'ils ont tous les deux et seulement 10% unique pour chacun d'eux qu'ils peuvent échanger sans que je me reconnecte pour rendre le reste disponible). Le téléchargement dans un ordre aléatoire maximise l'unicité de l'ensemble de blocs de chaque téléchargeur, maximisant ainsi la capacité des téléchargeurs à commencer à échanger entre eux et maximisant les chances qu'il leur soit possible d'assembler une copie complète si aucune graine n'est disponible.

Un seul téléchargement contigu peut (ou non, selon les conditions) être meilleur pour vous , mais le téléchargement dans un ordre aléatoire est préférable pour le réseau dans son ensemble.


"un ordre aléatoire maximise l'unicité de chaque ensemble" - précisément.
eternalmatt

30

La clé est que vous obtenez le fichier à partir de plusieurs sources (pairs) en même temps plutôt qu'à partir d'une seule source.

Si vous avez un fichier divisé en 10 parties et que le téléchargement à partir d'un serveur prend 100 secondes, vous pouvez théoriquement obtenir le fichier de 10 pairs en 10 secondes (plus quelques frais généraux) car chaque pair peut livrer sa partie en 10 secondes. En pratique, cela prendra plus de temps car chaque pair ne sera pas parfait, et vous atteindrez probablement votre limite de bande passante (mais vous avez l'idée).

Comme vous devez de toute façon réassembler le fichier, vous n'avez pas besoin de récupérer les pièces dans l'ordre. Donc, si vous n'avez que 5 pairs avec chacun fournissant 2 parties, celles-ci peuvent être des parties aléatoires du fichier.


Facile. Clair. +1
Xavierjazz

5
"Si 6 hommes peuvent creuser 6 trous en 6 minutes, combien de temps faut-il à 10 hommes pour creuser 10 trous?"
Martin

4
@martin dépend de la taille des trous (la taille du morceau) et de l'équipement disponible (bande passante) :)
ratchet freak

14

Il faut dire que cela dépend entièrement du fichier en question, du nombre de pairs et de la vitesse de la source non bittorente.

Vous ne téléchargerez jamais plus vite que la bande passante de téléchargement maximale de votre connexion, et si vous téléchargez depuis un endroit avec suffisamment de bande passante, ce sera plus rapide que d'utiliser Bittorrent.

Cependant, comme les vitesses Internet deviennent de plus en plus rapides, nous arrivons au point où les sites Web et les hôtes (plus petits) ne peuvent pas suivre.

Par exemple, lorsque je regardais les prix de la colocation à Londres il y a quelques mois, on m'a cité des prix absolument terribles pour une connexion de 5 Mo. Si je prenais cela, cela servirait bien la majorité des gens.

Cependant, sur la même ligne, si je devais héberger quelques fichiers de 500 Mo et que tout le monde avait des lignes par câble (50 Mo) ou ADSL2 + (24 Mo) rapides, vous remarqueriez que mon serveur ne serait pas en mesure de vous fournir une vitesse aussi rapide ...

... cependant, si je vous proposais le même fichier via Bittorrent et qu'il y avait 200 personnes, chacune ne donnant que 30 Ko / s, cela équivaudrait à 5,8 Mo / s (et, beaucoup de gens ont une vitesse de téléchargement beaucoup plus rapide que cela!) .... et maintenant, si je devais exécuter Bittorrent sur mon serveur et offrir le même fichier, cela signifierait qu'il y a un total de 10.8Mb / s téléchargeable - beaucoup plus que je ne pourrais fournir via ce tube de 5Mb / s sur le mien.

Bittorrent est vraiment un jeu de nombres, vous devez avoir suffisamment de personnes qui téléchargent avec suffisamment de bande passante ... En raison d'étapes supplémentaires impliquées telles que la vérification d'intégrité (et le fait que vous devriez télécharger à nouveau), il est difficile pour lui de battre jamais directement téléchargement à partir d'un bon site avec suffisamment de bande passante, mais, pour de nombreux sites plus petits - ce sont des sites brillants ou même plus grands qui veulent simplement économiser de l'argent sur leur facture de bande passante.


sans oublier que le chargement et le téléchargement de la bande passante dans les connexions par câble standard ne sont pas les mêmes (le A en ADSL)
ratchet freak

Règle de bande passante colo bizarre, ça me semble. Ici au Colorado, il semble que la plupart des colos offrent des connexions à 100 Mbps et vous facturent par utilisation chaque mois, et c'est à vous de gérer et de limiter votre propre vitesse de connexion si vous avez besoin de réduire les coûts.
Zan Lynx

Autre commentaire: je préfère télécharger à partir de Bittorrent lorsque cela est possible en raison de la vérification d'intégrité. Il est extrêmement douloureux d'être obligé de retélécharger un ISO ISO de DVD entier car le SHA1 ne correspond pas. Bittorrent vérifie chaque bloc, donc ce n'est qu'un petit morceau à remplacer.
Zan Lynx

@Zan Lynx - Aïe! Je n'ai eu ce problème qu'une seule fois au cours des 5 dernières années ... et avant, c'était principalement lorsque j'avais une mauvaise mémoire qui corrompait silencieusement des choses, je peux comprendre, mais je ne l'ai pas vu depuis de nombreuses années ... Quoi qu'il en soit, je voulais chercher la colocation et l'hébergement à l'étranger depuis un certain temps - l'Angleterre coûte très cher pour à peu près tout :(
William Hilsum

4

La plupart des réponses ne semblent pas répondre à votre question.

BitTorrent n'est pas plus rapide.

C'est en fait plus lent en raison de la surcharge de connexion à plusieurs sources.

Cependant, la vraie différence dans la pratique est que vous téléchargez à partir de nombreuses sources qui peuvent potentiellement s'additionner pour être plus rapides que ce qu'un site Web pourrait vous donner. De nombreux serveurs Web sont soumis à de lourdes charges ou sont autrement limités en vitesse afin de ne pas les aspirer à sec.

Le fait que BitTorrent transfère le fichier dans un ordre apparemment aléatoire n'a aucun effet direct sur sa vitesse.

En ce qui concerne votre montage, les pièces ne sont pas aléatoires! Ils sont hiérarchisés en fonction de la rareté: une pièce rare doit devenir moins rare le plus rapidement possible afin qu'elle ne soit pas perdue si la source qui la possède quitte soudainement. Cela concerne la disponibilité et non la vitesse.


3

C'est un problème de disponibilité. Si vous devez télécharger de manière contiguë, vous dépendez de personnes hébergeant plus de fichiers que vous. Toute personne possédant moins du fichier que vous ne pourra pas vous envoyer de données.

Si des morceaux sont distribués au hasard, le nombre d'hôtes à partir duquel vous pouvez télécharger sera plus élevé, vous téléchargerez donc le fichier plus rapidement.


1

Les torrents ne sont pas toujours plus rapides, mais lorsqu'ils le sont, l'une des raisons est l'entropie du réseau. Une connexion de n'importe quelle durée (téléchargement d'un fichier volumineux) peut se dégrader avec le temps, car des facteurs aléatoires et incontrôlables affectent la transmission des paquets, tels que la surcharge du routeur et d'autres problèmes entre vous et le serveur. Plus d'erreurs signifient plus de retransmissions de paquets, et cette situation a tendance à s'aggraver avec le temps. Les torrents établissent de nombreuses connexions plus petites, sur de nombreuses voies de routage, une stratégie qui peut, dans les bonnes circonstances, réduire les erreurs et les paquets perdus ou endommagés, et semble être plus rapide, d'autant plus que le nombre de graines et de pairs augmente.


1

Imaginons que vous envoyiez deux personnes à l'épicerie pour récupérer une liste d'articles. Vous leur donnez exactement la même liste. Cependant, l'un d'eux doit ramasser les articles dans l'ordre exact où ils apparaissent sur la liste. L'autre peut ramasser les articles dans l'ordre de leur choix. Selon vous, lequel finira en premier?


Et si les articles étaient tous rangés dans l'ordre? (Défragmenté?)
Mateen Ulhaq

Arrangé dans quel ordre? Par ordre alphabétique? À moins qu'ils ne soient juste arrangés exactement de la même manière que le supermarché, cela n'aiderait pas. Dans l'analogie, le «supermarché» est la liste de blocage de différents uploaders. (Si tout le monde a commencé depuis le début, alors deux personnes qui détenaient chacune 33% du fichier ne pouvaient pas s'entraider, car elles auraient exactement les mêmes blocs. Beurk.)
David Schwartz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.