Wie erkenne ich doppelte Dateien in und zwischen Torrents?

539
fullmooninu

Wenn ich eine Reihe von Torrents herunterlade, gibt es einen Weg oder einen Client, der bereits heruntergeladene Dateien erkennt und den Download stoppt?

Bearbeiten: Klarstellung aus den Kommentaren. Ja, dies bedeutet, doppelte Dateien zwischen verschiedenen Torrents zu finden und das Herunterladen dieser Dateien zu vermeiden.

Ich weiß, dass einige Clients es Ihnen ermöglichen, auszuwählen, welche Dateien in einem Torrent heruntergeladen werden sollen. Ist es möglich, eine Prüfsumme einzelner Dateien in einem Torrent abzurufen, bevor Sie sie herunterladen? Wenn ja könnte ich ein Skript machen oder so.

1
Wenn es sich um denselben Torrent handelt, wird dies beim Start des Herunterladens angezeigt, wenn der andere ausgeführt wird. Abgesehen davon, dass er nicht jeden Torrent, der unterschiedlich ist, auf doppelte Dateien überprüft Moab vor 5 Jahren 1
Doppelte Dateien innerhalb des Torrents enthalten die gleichen Teile. Wenn Sie über Deduplizierung zwischen Torrents sprechen, ist das eine andere Sache. jdwolf vor 5 Jahren 1
@jdwolf Nein, die Stücke hätten unterschiedliche Offsets, so dass sie nicht identisch sind. Encombe vor 5 Jahren 0
@Encombe Wenn sie unterschiedliche "Offsets" hätten, wären sie jetzt nicht die gleiche Datei, oder? jdwolf vor 5 Jahren 0
Ist es möglich, eine Prüfsumme einzelner Dateien in einem Torrent abzurufen, bevor Sie sie herunterladen? Wenn ja könnte ich ein Skript machen oder so. fullmooninu vor 5 Jahren 0
BT-Prüfsummen (Hashes), nicht Dateien. Ignacio Vazquez-Abrams vor 5 Jahren 0
@ IgnacioVazquez-Abrams, aber jedes Futter kann mehr als eine Datei abdecken? fullmooninu vor 5 Jahren 0
Ja. Und eine Datei kann mehr als einen Chunk enthalten. Ignacio Vazquez-Abrams vor 5 Jahren 0
@ IgnacioVazquez-Abrams Nein, ich habe andersherum gefragt :). Wenn ein Chunk mehr als eine Datei abdecken kann. Wenn jedes Spannfutter eine einzelne Feile nur teilweise oder vollständig abdeckt, ist meine Theorie immer noch gültig. fullmooninu vor 5 Jahren 0
Wie solltest du die Teile herausfinden, aus denen der Rest besteht? Ignacio Vazquez-Abrams vor 5 Jahren 0

1 Antwort auf die Frage

2
Encombe

Es ist nicht möglich zu bestimmen, ob eine Datei in einem Torrent auch in einem anderen Torrent aus den in den Torrent-Dateien verfügbaren Daten vorhanden ist. Im Standard-BitTorrent-Protokoll gibt es einfach keine Deduplizierungsunterstützung.

Wenn ein Torrent erstellt wird, werden alle darin enthaltenen Dateien miteinander verkettet und dann in Stücke aufgeteilt.

example: Files |---#1|#2|---#3|-----------------------#4|#5|------#6|-----#7|-------#8| Pieces |--0|--1|--2|--3|--4|--5|--6|--7|--8|--9|-10|-11|-12|-13|-14|-15|-16|17| 
  • Alle Stücke sind bis auf das letzte Stück gleich lang.
  • Eine Datei hat ein oder mehrere Teile.
  • Ein Stück kann (Teile aus) mehr als eine Datei enthalten.
  • Es ist sehr selten, dass interne Datei- und Stückgrenzen aneinander angereiht werden (ausgenommen, wenn Auffülldateien verwendet werden).
  • Bei einer Datei in einem Torrent mit mehreren Dateien wird fast immer ein Teil mit einer anderen Datei geteilt.

Das Problem ist, dass es nicht möglich ist, einen Datei-Hash aus den Stück-Hashes zu erstellen.

(@jdwolf Auch wenn Datei # 1 und Datei # 3 identisch sind, unterscheiden sich ihre Hash-Werte.)

Es gibt einige Torrent-Creator-Programme, die optional Hashes für Dateien hinzufügen können, aber sie werden nirgendwo verwendet.