Warum werden zufällige Teile einer Datei schneller verteilt als zusammenhängende Übertragungen?

17

Warum heißt es, dass BitTorrent zum Teil schneller ist, weil es zufällige Teile einer Datei überträgt, anstatt sie zusammenhängend / linear von Anfang bis Ende zu übertragen?


EDIT: Aber warum sie haben ‚zufällig‘ sein? Warum nicht eine vorhersehbarere 'halb-zusammenhängende' Übertragung, bei der ein Peer Ihnen die erste Hälfte und der zweite Peer die andere Hälfte gibt? Dies würde theoretisch den Overhead reduzieren.

Mateen Ulhaq
quelle

Antworten:

6

Was die Bearbeitung betrifft, fragen wir, warum sie zufällig sein müssen: Nehmen wir an, dass Torrents so geändert wurden, dass sie nur den ersten Block herunterladen, den der Downloader noch nicht hat, wodurch eine zusammenhängende Übertragung gewährleistet wird.

Ich teile dann eine 100MB-Datei. 10 Personen verbinden sich und laden jeweils 50 MB herunter, bevor ich offline gehe.

Diese Leute werden dann geschraubt, weil sie alle die erste Hälfte der Akte haben, während nur ich die zweite Hälfte habe. Bis ich es wieder verfügbar mache, können sie den Download nicht abschließen.

Stattdessen werden die Blöcke in einer zufälligen Reihenfolge übertragen, wie dies tatsächlich der Fall ist. Jede dieser 10 Personen verfügt über einen unterschiedlichen Satz von Blöcken, sodass sie untereinander handeln können, um ihre Downloads abzuschließen, ohne dass ich anwesend sein muss.

Noch besser ist jedoch, dass jeder von ihnen einen anderen Satz von Blöcken hat und von allen heruntergeladen werden kannder anderen, um die Lücken in ihrer Kopie auszufüllen. Ihre Bearbeitung bezog sich auf die Idee, von einem zufälligen Punkt in der Datei aus zu starten und von diesem Punkt aus fortlaufend herunterzuladen. Dies würde jedoch die Überlappung von einer Download-Kopie zur nächsten vergrößern (wenn Alice am Anfang der Datei beginnt und Bob beginnt) 10%, dann gibt es 40% der Datei, die beide haben, und nur 10% für jede einzelne, die sie handeln können, ohne dass ich erneut eine Verbindung herstelle, um den Rest zur Verfügung zu stellen. Durch das Herunterladen in zufälliger Reihenfolge wird die Einzigartigkeit der Blockbestände der einzelnen Downloader maximiert. Dadurch wird die Fähigkeit der Downloader maximiert, untereinander Handel zu treiben, und die Wahrscheinlichkeit wird maximiert, dass sie eine vollständige Kopie zusammenstellen können, wenn keine Startwerte verfügbar sind.

Ein einzelner zusammenhängender Download kann (je nach den Umständen) für Sie besser sein (oder auch nicht) , aber das Herunterladen in zufälliger Reihenfolge ist für das gesamte Netzwerk besser.

Dave Sherohman
quelle
"Eine zufällige Reihenfolge maximiert die Einzigartigkeit jedes Satzes" - genau.
Eternalmatt
30

Der Schlüssel ist, dass Sie die Datei nicht von einer Quelle, sondern von mehreren Quellen (Peers) gleichzeitig erhalten.

Wenn Sie eine Datei haben, die in 10 Teile aufgeteilt ist und das Herunterladen von 1 Server 100 Sekunden dauert, können Sie die Datei theoretisch von 10 Peers in 10 Sekunden (zuzüglich einiger Overheads) abrufen, da jeder Peer seine Teile in 10 Sekunden bereitstellen kann. In der Praxis wird es länger dauern, da nicht jeder Peer perfekt ist und Sie wahrscheinlich Ihr Bandbreitenlimit erreichen (aber Sie haben die Idee).

Da Sie die Datei trotzdem neu zusammensetzen müssen, müssen Sie die Teile nicht in der richtigen Reihenfolge abrufen. Wenn Sie also nur 5 Peers mit jeweils 2 Teilen haben, können diese zufällige Teile der Datei sein.

ChrisF
quelle
Einfach. Klar. +1
Xavierjazz
5
"Wenn 6 Männer in 6 Minuten 6 Löcher graben können, wie lange brauchen 10 Männer, um 10 Löcher zu graben?"
Martin
4
@ Martin hängt von der Größe der Löcher (die Chunk-Größe) und der verfügbaren Ausrüstung (Bandbreite) ab :)
Ratschenfreak
14

Es sollte gesagt werden, dass dies vollständig von der fraglichen Datei, der Anzahl der Peers und der Geschwindigkeit der nicht-bittorenten Quelle abhängt.

Sie werden niemals schneller als die maximale Download-Bandbreite Ihrer Verbindung herunterladen. Wenn Sie von einem Ort mit ausreichender Bandbreite herunterladen, ist dies schneller als mit Bittorrent.

Da jedoch die Internetgeschwindigkeiten immer schneller werden, kommen wir an den Punkt, an dem (kleinere) Websites und Hosts nicht mehr mithalten können.

Als ich mich zum Beispiel vor ein paar Monaten in London nach Colocation-Preisen umsah, wurden mir absolut schreckliche Preise für eine 5-MB-Verbindung genannt. Wenn ich das nehmen würde, würde es der Mehrheit der Menschen gut dienen.

Wenn ich jedoch ein paar 500-MB-Dateien hosten würde und alle über Kabel (50 MB) oder schnelle ADSL2 + -Leitungen (24 MB) verfügen, würden Sie feststellen, dass mein Server die Geschwindigkeit nicht so schnell bereitstellen kann ...

... wenn ich Ihnen jedoch dieselbe Datei über Bittorrent anbieten würde und 200 Personen mit jeweils nur 30 KBit / s anwesend wären, entspräche dies 5,8 MBit / s (und viele Leute haben eine viel schnellere Upload-Geschwindigkeit als diese!) .... und jetzt, wenn ich Bittorrent auf meinem Server ausführen und dieselbe Datei anbieten würde, würde dies bedeuten, dass insgesamt 10,8 MB / s heruntergeladen werden können - viel mehr, als ich durch diese 5-MB / s-Pipe bereitstellen könnte mein eigenes.

Bittorrent ist ein Spiel mit Zahlen, man muss genügend Leute haben, die mit genügend Bandbreite hochladen ... Aufgrund zusätzlicher Schritte wie der Integritätsprüfung (und der Tatsache, dass Sie zurückladen sollten ) ist es schwer, jemals direkt zu schlagen Herunterladen von einer guten Site mit genügend Bandbreite, aber für viele kleinere Sites sind es brillante oder sogar größere Sites, die einfach Geld von ihrer Bandbreitenrechnung sparen möchten.

William Hilsum
quelle
Ganz zu schweigen davon, dass Upload- und Download-Bandbreite bei Standardkabelverbindungen nicht gleich sind (das A bei ADSL)
Ratschenfreak
Seltsame Colo-Bandbreitenregel, das hört sich für mich so an. Hier in Colorado bieten die meisten Colos 100-Mbit / s-Verbindungen an und berechnen monatlich eine Gebühr. Es liegt an Ihnen, Ihre eigene Verbindungsgeschwindigkeit zu verwalten und zu begrenzen, wenn Sie die Kosten niedrig halten müssen.
Zan Lynx
Ein weiterer Kommentar: Ich bevorzuge das Herunterladen von Bittorrent, wenn dies möglich ist, da die Integrität überprüft wird. Es ist unglaublich schmerzhaft, eine gesamte DVD-ISO erneut herunterladen zu müssen, da der SHA1 nicht übereinstimmt. Bittorrent prüft jeden Block, sodass nur ein kleiner Teil ersetzt werden muss.
Zan Lynx
@Zan Lynx - Autsch! Ich hatte dieses Problem in den letzten 5 Jahren nur einmal ... und davor war es hauptsächlich, als ich ein schlechtes Gedächtnis hatte, das die Dinge stillschweigend korrumpierte. Ich kann verstehen, aber ich habe es seit vielen Jahren nicht gesehen. Wie auch immer, ich wollte schon seit einiger Zeit nach Colocation und Hosting im Ausland suchen - England ist für so ziemlich alles sehr teuer :(
William Hilsum
4

Die meisten Antworten scheinen Ihre Frage nicht zu beantworten.

BitTorrent ist nicht schneller.

Es ist tatsächlich langsamer, da der Aufwand für das Herstellen einer Verbindung zu mehreren Quellen höher ist.

Der wirkliche Unterschied in der Praxis besteht jedoch darin, dass Sie von vielen Quellen herunterladen, die möglicherweise schneller sind als eine Website. Viele Webserver sind stark ausgelastet oder auf andere Weise auf die Geschwindigkeit beschränkt, sodass Sie sie nicht trocken saugen.

Die Tatsache, dass BitTorrent die Datei in einer scheinbar zufälligen Reihenfolge überträgt, hat keinen direkten Einfluss auf die Geschwindigkeit.

In Bezug auf Ihre Bearbeitung sind die Stücke nicht zufällig! Sie werden nach ihrer Seltenheit priorisiert: Ein seltenes Stück muss so schnell wie möglich seltener werden, damit es nicht verloren geht, wenn die Quelle, aus der es stammt, plötzlich verlässt. Es geht um Verfügbarkeit, nicht um Geschwindigkeit.

Milo
quelle
3

Es ist ein Verfügbarkeitsproblem. Wenn Sie fortlaufend herunterladen müssen, sind Sie darauf angewiesen, dass mehr Dateien gehostet werden als Sie. Jede Person mit weniger Dateien als Sie kann Ihnen keine Daten senden.

Wenn Chunks zufällig verteilt werden, ist die Anzahl der Hosts, von denen Sie herunterladen können, höher. Daher wird die Datei schneller heruntergeladen.

dkam
quelle
1

Torrents sind nicht immer schneller, aber wenn, dann ist ein Grund die Netzwerkentropie. Eine Verbindung von beliebiger Dauer (das Herunterladen einer großen Datei) kann sich im Laufe der Zeit verschlechtern, da zufällige, nicht kontrollierbare Faktoren die Übertragung von Paketen beeinflussen, z. B. eine Überlastung des Routers und andere Probleme zwischen Ihnen und dem Server. Mehr Fehler bedeuten mehr Neuübertragungen von Paketen, und diese Situation verschlechtert sich mit der Zeit. Torrents stellen über viele Routing-Pfade viele kleinere Verbindungen her. Diese Strategie kann unter den richtigen Umständen Fehler und verlorene oder beschädigte Pakete reduzieren und scheint schneller zu sein, insbesondere wenn die Anzahl der Seeds und Peers zunimmt.

Norman Kraft
quelle
1

Nehmen wir an, Sie schicken zwei Personen zum Lebensmittelgeschäft, um eine Liste mit Artikeln abzuholen. Sie geben ihnen jeweils die exakt gleiche Liste. Einer von ihnen muss die Gegenstände jedoch in der genauen Reihenfolge abholen, in der sie in der Liste aufgeführt sind. Der andere kann die Artikel in beliebiger Reihenfolge abholen. Was glaubst du wird als erstes enden?

David Schwartz
quelle
Was wäre, wenn alle Elemente in der richtigen Reihenfolge angeordnet wären? (Defragmentiert?)
Mateen Ulhaq
In welcher Reihenfolge angeordnet? In alphabetischer Reihenfolge? Es würde nicht helfen, wenn sie nicht genau so angeordnet wären, wie der Supermarkt angeordnet war. In der Analogie ist der "Supermarkt" die Sperrliste verschiedener Uploader. (Wenn alle von Anfang an anfingen, dann konnten sich zwei Leute, die jeweils 33% der Datei hatten, nicht gegenseitig helfen, da sie genau die gleichen Blöcke hatten. Yuck.)
David Schwartz