# BitTorrent (30.09.2024)
BitTorrent ist ein Protokoll für den Peer-to-Peer (P2P) Datenaustausch. Dies ermöglicht es den Nutzern, Dateien dezentral im Internet zu teilen. Entwickelt wurde das Protokoll von Bram Cohen, welcher am 2. Juli 2001 eine erste Version von BitTorrent herausbrachte.[^2]
## P2P File-Sharing
Wenn wir eine Datei über HTTP auf einer Website herunterladen, werden die Daten von einem zentralen Server zu unserem Rechner gesendet. Dieser zentrale Server ist somit der einzige Anbieter dieser Datei, und muss bei nebenläufigen Downloads diese Datei für alle Downloaders zur Verfügung stellen.
Bei BitTorrent wurde das ganze ein bisschen anders gestaltet. Über HTTP laden wir nämlich nicht unsere erwünschte Datei herunter, sondern eine *torrent*-Datei. Diese Datei enthält die Informationen, wo wir unsere wirkliche Datei herunterladen können. Die Anbieter von Dateien im Torrent-Netzwerk heissen **Seeders**. Ein *torrent*-File kann also bestimmte Seeders enthalten, oder aber sogenannte **Trackers**, welche uns eine aktuelle Liste von Seeders für diesen Torrent liefern können. Wenn wir unsere Seeders identifiziert haben, verbindet sich der Client zu diesen *Peers* um die Datei in Stückchen herunterzuladen. Sobald wir einen Torrent gestartet haben, laden wir nicht nur die Datei herunter, sondern werden selber auch zu Seeders.
## Vorteile
Da wir unsere Daten nicht von einem einzelnen Server beziehen, können wir die Bandbreite stark entlasten. Anstelle einer tieferen Leistung bei mehr Anfragen haben wir in einem Torrent-Netzwerk eine erhöhte Leistung, da immer mehr und bessere Seeders zur Verfügung stehen.
Es ist ausserdem dezentral. Wir haben also keinen *Single Point of Failure* mehr und das Teilen von Dateien benötigt keine teure Hardware mehr, da die Datei auf keinem Server gehostet werden muss.
## Nachteile
Obwohl BitTorrent bei grossen Mengen an Anfragen gut skaliert, eignet es sich nicht sehr gut für Marktnischen-Content. Dateien mit einer geringen Menge an Seedern machen es sehr umständlich, die Datei herunterzuladen.[^1]
## Praktischer Einsatz
Um selber Torrent Files herunterladen zu können wird ein BitTorrent-Client benötigt. Ein Beispiel für einen solchen Client ist [qBitTorrent](https://www.qbittorrent.org/download). Für dieses Beispiel werden wir das [Debian 12.7.0 ISO](https://cdimage.debian.org/debian-cd/current/amd64/bt-cd/) herunterladen. Wenn wir das Torrent File auf unseren PC gespeichert haben, können wir es in unseren BitTorrent-Client importieren:
![[qBitTorrent-add.png]]
Abbildung 1: Knopf für das Hinzufügen eines Torrents (Quelle: eigene Aufnahme)
Anschliessend müssen wir den Download nur noch starten, und die Datei wird in den gewählten Speicherort heruntergeladen:
![[qBitTorrent-install.png]]
Abbildung 2: Knopf für das starten des Downloads (Quelle: eigene Aufnahme)
## Fazit
BitTorrent unterscheidet sich in vielen Aspekten von traditionelleren *File-Sharing-*Protokollen. Es kommt jedoch mit vielen Vorteilen welche je nach Anwendungsbereich geeigneter sein können. Mit der dezentralen Grundlage bietet es der Community auch viel mehr Freiheit, wodurch mit BitTorrent auch eine gewisse Kultur entstanden ist. Der unterhalt eines Torrent-Netzwerks ist kostenfrei, solange alle untereinander teilen.
[^1]: vgl. BitTorrent, in: Wikipedia, 30.09.2024, https://en.wikipedia.org/wiki/BitTorrent
[^2]: vgl. The BitTorrent Protocol Specification, in: BitTorrent.org, 30.09.2024, https://www.bittorrent.org/beps/bep_0003.html