Home / LinuxUser / 2009 / 03 / Stück für Stück

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(179 Punkte bei 5 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)
Mageia 2 ist fertig
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.
AA_jigsaw_sxc944284.jpg

© sxc.hu

Stück für Stück

P2P-Filesharing mit Bittorrent

23.02.2009 Bittorrent hat in den acht Jahren seines Bestehens einen enormen Zuwachs erhalten. Das Protokoll überzeugt durch Schlichtheit und Effizienz. Dabei ist Bittorrent bei weitem nicht dem Tausch illegaler Dateien vorbehalten.

Angefangen hat es alles im Jahr 2001 mit einer in Python geschriebenen Bittorrent-Referenzimplementierung von Bram Cohen [1]. Seit dieser Zeit haben sich zu dem eher langsamen Original-Client zahlreiche weitere Alternativen aller Geschmacksrichtungen gesellt. Die englische Wikipedia listet Anfang 2009 über 50 Bittorrent-Clients auf [2] und erhebt dabei noch lange keinen Anspruch auf Vollständigkeit. (Den schnellen Konsolen-Client Rtorrent und ein dazu passenden Webfrontend stellen wir Ihnen im folgenden Artikel vor.) Doch wie funktioniert dieses Bittorrent-Protokoll überhaupt, wo liegen die Stärken und Schwächen des Verfahrens?

Das Prinzip

Bei Bittorrent handelt es sich um ein so genanntes Peer-to-Peer-Verfahren (P2P), bei dem gleichberechtigte Partner (engl.: "peer") miteinander kommunizieren. Nicht ein Server verteilt also die Dateien, sondern die einzelnen Teilnehmer tauschen die Daten untereinander aus.

Dazu verteilt der Ausgangsrechner, der im Besitz der gesamten Datei ist – der Seeder (engl. "seed": säen) – Stücke des zu tauschenden Files (engl. "chunk": Brocken) auf einzelne Peers. Anschließend können die an der Datei interessierten Clients (der "Schwarm") die noch fehlenden Chunks bei den anderen Peers beziehen. Durch diese Verteilung des Downloads auf viele Maschinen bildet nicht mehr ein einzelner Server einen Flaschenhals für die Download-Rate. Peers, die schließlich die komplette Datei erhalten haben, avancieren nun selbst zu Seedern und steigern so die verfügbare Gesamt-Downloadrate im Netz weiter.

Damit das ganze klappt, benötigt man eine Koordinierungsstelle, welche die beteiligten Peers registriert und ihnen mitteilt, wer welches Scheibchen der gesuchten Datei vorrätig hält. Diese zentrale Instanz bezeichnet man als Tracker. Modernere Bittorrent-Implementationen können auch auf einen zentralen Tracker verzichten, indem sie die entsprechenden Daten als Hash-Tabelle auf die beteiligten Clients verteilen.

Die Torrent-Datei

Möchten Sie eine Datei über Bittorrent verteilen, so gilt es dazu als erstes eine Datei mit Meta-Informationen zu erstellen, die so genannte Torrent-Datei, die man an der Dateierweiterung .torrent erkennt. Das müssen Sie nicht etwa händisch erledigen, sondern beauftragen Ihren Bittorrent-Client mit dieser Aufgabe.

Der Client zerlegt die zu verteilende Datei zunächst in viele kleine Stückchen und generiert einen SHA1-Hash [3] für jeden einzelnen Part. Eine Liste dieser Prüfsummen schreibt er in die Torrent-Datei und fügt noch einige zusätzliche Informationen hinzu, wie etwa Dateigröße und Dateiname. Anschließend erzeugt er noch einen weiteren SHA1-Hash über die Hash-Liste und die Metadaten. Mithilfe dieser Prüfsumme lässt sich die Torrent-Datei später im Netzwerk eindeutig identifizieren.

Des weiteren braucht die Torrent-Datei noch eine "Announce URL". Die sieht aus wie eine normale Webadresse und ist auch eine: Sie verweist auf einen Torrent-Tracker. Diese "schwarzen Bretter" des Torrent-Protokolls sammeln Informationen darüber, wer sich für welche Datei interessiert, leiten diese Anfragen weiter und machen so die einzelnen Peers miteinander bekannt – mehr dazu im Abschnitt "Clients und Tracker".

Die Torrent-Datei verteilen Sie nun über ein beliebiges Medium, etwa via E-Mail. Möchten Sie sie der Allgemeinheit zur Verfügung stellen, laden Sie die Datei auf eine Torrent-Suchmaschine hoch. Die meisten großen Tracker-Betreiber wie The Pirate Bay ([4],[5]) oder Mininova [6] bieten neben ihrem Tracker auch noch Suchmaschinen an. Dabei gilt es unbedingt zu beachten, dass Torrents, die über den Tracker laufen, nicht zwangsläufig auch auf der Suchmaschine auftauchen, und umgekehrt.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

1329 Hits
Wertung: 96 Punkte (10 Stimmen)

Schlecht Gut

Infos zum Autor

Daniel Gultsch

Daniel Gultsch

Daniel Gultsch ist Student an der RWTH Aachen. Seit über 7 Jahren setzt er nun ausschließlich Linux auf seinen Rechnern ein. Zur Zeit läuft auf seinem Desktop ein Gentoo Linux mit KDE 4.4 und auf seinem Thinkpad X301 ein Gentoo mit dem Tiling WM i3. In seiner Freizeit hält er ein Netzwerk mit ~250 Benutzern am Laufen.

Zum Blog von Daniel Gultsch →


Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...