Ich habe mich gefragt, wie Teile, die von Torrent-Clients heruntergeladen wurden, gespeichert und wieder zusammengesetzt werden. Verwenden sie Metadaten? Es scheint, dass dies nicht der Fall ist, da man sie abspielen kann, wenn es sich um halb geformte Dateien handelt? Ich habe keine Ahnung, wie das gemacht wird? Im Grunde frage ich mich also, wie die Teile in der heruntergeladenen Datei organisiert sind. Ist es nur vom ersten bis zum letzten oder gibt es dazwischen Pufferräume?
bittorrent
Cenoc
quelle
quelle
Antworten:
Willkommen in der wundervollen Welt von Torrents! Das Bittorrent-Protokoll besteht aus einigen Teilen: Sie haben Ihre Datei legalthing.iso und möchten sie an so viele Personen wie möglich verteilen. Sie erstellen also eine "Torrent" -Datei, die legalthing.iso beschreibt, und verteilen die Torrent-Datei über eine Website oder auf eine andere Art und Weise, die Sie möchten. Die Torrent-Datei kann entweder direkt auf Ihren Computer verweisen (und Sie würden als Seed fungieren) oder die Torrent-Datei kann auf einen "Tracker" verweisen, bei dem es sich um einen Server handelt, der "Seeds" (Benutzer mit der gesamten Datei legalthing.iso) verbindet Datei bereits) und "Peers" (Benutzer, die die Datei aktiv herunterladen).
Kommen Sie Ihrer Frage jetzt näher. Die Datei selbst, legalthing.iso, ist kryptografisch gehasht, sodass jede Person, die die Torrent-Datei liest und mit dem Herunterladen von legalthing.iso beginnt, jedes Stück mit dem Hash vergleichen und sicherstellen kann, dass sie kein Stück herunterlädt, das vom Original geändert wurde. Teile, die die Hash-Prüfung nicht bestehen, werden verworfen.
Stellen Sie sich nun vor, Sie sind ein Computer, der mit Bittorrent eine Datei herunterlädt. Das Protokoll kann auf zwei Arten funktionieren: Entweder laden Sie zufällige Teile der Datei herunter oder Sie laden zuerst die seltensten Teile herunter. Dieser letztere Ansatz besteht darin, die allgemeine "Gesundheit" (Verfügbarkeit) des Torrents zu erhöhen.
Was ist also in der eigentlichen Torrent-Datei? Es hängt vom Client ab, der für die Erstellung verwendet wurde. Im Allgemeinen enthält es jedoch einen Abschnitt "Ansagen", in dem die Adresse des von Ihnen verwendeten Trackers angegeben ist, sowie eine große Liste aller Teile der Datei, die Sie herunterladen möchten. Jedes Stück hat eine einheitliche Größe (32 kb, 512 kb, 4 mb, wirklich jede Größe, die Sie mögen) und jedem Stück ist ein Hash zugeordnet. Jedes Mal, wenn ein Peer ein Stück erhält, vergleicht er den Hash für dieses Stück (unter Verwendung des SHA-1-Hash-Codes) mit dem in der Torrent-Datei aufgeführten Hash. So stellt sich heraus, dass die Teile gut sind.
Da die Torrent-Datei jedes Stück der Datei auflistet, die Sie herunterladen, schreibt Ihr Client jedes Mal, wenn ein Client erfolgreich ein Stück herunterlädt und es hasht, das Stück an die richtige Position auf der Festplatte in der Datei. Wenn Sie eine 1-GB-Datei herunterladen, legt der Client daher einen leeren Block Speicherplatz auf Ihrer Festplatte mit einer Größe von 1 GB frei, um die heruntergeladenen Torrent-Teile aufzunehmen.
Jetzt können einige Videoplayer und andere Dateibetrachter mit "beschädigten" Dateien umgehen. Natürlich ist ein halb heruntergeladener Torrent nicht beschädigt, aber es fehlen Teile und für ein Programm wie VLC sieht es einfach kaputt aus. VLC wird also das Beste tun, um alle gefundenen Daten abzuspielen, und deshalb können sie abgespielt werden, während sie teilweise heruntergeladen werden.
Es gibt viel kompliziertere Aspekte (Google DHT, Torrent-Schreibpufferung, all das lustige Zeug), aber das sind die Grundlagen der Funktionsweise von Bittorrent.
quelle