17141_4810.png

Dateien herunterladen mit BitTorrent

verteilte Last

Sobald eine Linux-Distribution eine größere Fan-Gemeinde erreicht, stoßen zumindest kleine Distributoren auf ein finanzielles Problem: Die eigentlich erfreuliche Beliebtheit verschlingt ungeheure Datenmengen, wenn die Anwender sich begierig auf jede neue Version auf dem Server stürzen. Der Datentransfer kann werden – wenn man die Last nicht verteilt.

Für Benutzer, die große Dateien wie beispielsweise das CD-Image einer Linux-Distribution herunterladen, strapaziert es die Geduld und ohne Flatrate auch den Geldbeutel, wenn der Download trotz schneller Internet-Anbindung kriecht. Anbieter, die ein Interesse an der Verbreitung ihrer Software haben, möchten ihrer Fan-Gemeinde dies ersparen.

Theorie…

Als Entlastung für beide Seiten funktioniert das BitTorrent-Konzept: Wer große Datenmengen – wie eine oder mehrere CD-Image-Dateien – zur Verfügung stellt, ist im BitTorrent-Vokabular der erste "Seed" (deutsch: Saat/Samen). Die angebotenen Dateien werden unterteilt in kleinere Pakete; hat ein BitTorrent-Downloader das erste Paket heruntergeladen, stellt er selbst es ebenfalls zum Download bereit und wird damit zum "Peer"; einer Art Mirror-Server, der aber nur Teile des Gesamt-Downloads anbietet.

Der nächste Benutzer, der das Angebot herunterladen möchte, bezieht nun von einer dieser Quellen – Seed oder Peer – die einzelnen Pakete und wird dadurch ebenfalls zum Peer. Hat ein Teilnehmer sämtliche Pakete gesammelt und seinen BitTorrent-Client nicht beendet, erfüllt er nur noch die Funktion eines Servers: Er bietet den kompletten Download an, ohne herunterzuladen; das bedeutet, er wird ebenfalls zum Seed.

Dieses Konzept verteilt die benötigte Gesamtbandbreite auf alle Anwender; je mehr Interessenten es für eine Datei gibt, desto mehr Anbieter gibt es. Bei ausreichender Anzahl Peers und Seeds braucht der ursprüngliche Anbieter sich nicht mehr um die Bandbreite seines Servers zu sorgen, während die "Kunden" sich über schnelle Downloads freuen. Wenige Peers gibt es im Idealfall nur dann, wenn insgesamt wenig Interesse an einem Angebot besteht und somit die primäre Quelle ebenfalls kein Problem mit der Versorgung hat.

Zur Koordination dieses Vorgangs dient ein so genannter Tracker. Das ist ein Server, bei dem sich Peers anmelden und dem sie regelmäßig Bescheid geben, welche Pakete sie schon heruntergeladen haben und selbst anbieten. Meldet sich ein neuer Peer beim Tracker, erhält er eine Liste angemeldeter Peers und Seeds, bei denen er mit dem Download beginnen kann.

Um den zuständigen Tracker zu finden, gibt es für jedes Angebot eine Torrent-Datei, die die wichtigsten Informationen zusammenfasst: Außer der Internet-Adresse des Trackers stehen darin die enthaltenen Dateien nebst Größe sowie ein Hash-Code zur eindeutigen Identifikation. Da der Tracker selbst keinen Download anbietet, benötigt er zwar eine konstante, aber keine besonders schnelle Internet-Anbindung.

…und Praxis

Der Anwender benötigt also die Torrent-Datei, die zum gesuchten Angebot gehört, um mit dem Download zu beginnen. Solche Dateien liegen im Internet auf Web-Servern, die man über eine Suchmaschine oder Links findet; wer nach der Linux-Distribution Fedora sucht, fahndet bei seiner Lieblingssuchmaschine nach den Begriffen Fedora und Torrent und landet schnell bei der richtigen Adresse. Startpunkte bietet auch die BitTorrent-Homepage [1].

Unter Debian ab der Version Sarge gibt es ein fertiges BitTorrent-Programmpaket; der Befehl apt-get install bittorrent installiert es. Unter anderen Distributionen verwenden Sie das Archiv auf der Heft-CD und entpacken es beispielsweise in Ihrem Home-Verzeichnis mit tar -xzf BitTorrent-3.4.2.tar.gz.

Der BitTorrent-Client ist in der Programmiersprache Python geschrieben und setzt deshalb zum Starten weitere Programme voraus: Neben dem Python-Basispaket braucht das grafische Client-Programm den Python-Zusatz für wxWidgets, das sich um die Fenstergestaltung kümmert. Unter Suse heißt das entsprechende Paket python-wxGTK, unter Mandrake wxPythonGTK.

Nun speichern Sie die Torrent-Datei auf Ihrer Festplatte und starten den Download mit dem grafischen BitTorrent-Client im neuen Verzeichnis BitTorrent-3.4.2:

python btdownloadgui.py
tettnang-binary-i386-iso.torrent

Dieses Beispiel lädt die Fedora-Ausgabe "Tettnang" (Core 2) herunter. Debian-Benutzern reicht der Befehl:

btdownloadgui
tettnang-binary-i386-iso.torrent

Nach Angabe des gewünschten Zielverzeichnisses startet dann der Download (Abbildung 1).

Abbildung 1: BitTorrent sorgt für hohe Download-Geschwindigkeiten.

Alternativ zum grafischen Client bietet BitTorrent den textbasierten Download. Verwenden Sie für ein Textfenster das Programm btdownloadcurses.py an Stelle von btdownloadgui.py oder das reine Kommandozeilenprogramm btdownloadheadless.py.

Zum Starten mehrerer Downloads auf einmal dient der Aufruf

python
btlaunchmanycurses.py ~/torrents

Dieses Beispiel verwendet alle Torrent-Dateien im Verzeichnis ~/torrents/ und startet die Downloads in einem gemeinsamen Textfenster (Abbildung 2). Ein grafisches Werkzeug gibt es für den mehrfachen Download nicht, allerdings laufen mehrere Clients problemlos gleichzeitig.

Abbildung 2: Mehrere Downloads parallel im Textfenster.

Mehr Informationen über den Inhalt eines Torrent-Angebots verschafft Ihnen das Werkzeug btshowmetainfo.py: Rufen Sie es gefolgt vom Namen einer Torrent-Datei auf, erfahren Sie unter anderem Namen und Größe der enthaltenen Dateien:

python btshowmetainfo.py
tettnang-binary-i386-iso.torrent

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 05/2017: Linux unterwegs

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Linux open suse 2,8
Wolfgang Gerhard Zeidler, 18.04.2017 09:17, 2 Antworten
Hallo.bitte um Hilfe bei. Code fuer den Rescue-login open suse2.8 Mfg Yvo
grep und sed , gleicher Regulärer Ausdruck , sed mit falschem Ergebnis.
Josef Federl, 15.04.2017 00:23, 1 Antworten
Daten: dlfkjgkldgjldfgl55.55klsdjfl jfjfjfj8.22fdgddfg {"id":"1","name":"Phase L1","unit":"A",...
IP Cams aufzeichnen?
Bibliothek der Technischen Hochschule Mittelhessen / Giessen, 07.04.2017 09:25, 7 Antworten
Hallo, da nun des öfteren bei uns in der Nachbarschaft eingebrochen wird, würde ich gern mein...
WLAN lässt sich nicht einrichten
Werner Hahn, 21.03.2017 14:16, 2 Antworten
Dell Latitude E6510, Ubuntu 16.4, Kabelbox von Telecolumbus. Nach Anklicken des Doppelpfeiles (o...
"Mit Gwenview importieren" funktioniert seit openSuse 42.2 nicht mehr
Wimpy *, 20.03.2017 13:34, 2 Antworten
Bisher konnte ich von Digitalkamera oder SD-Karte oder USB-Stick Fotos mit Gwenview importieren....