BitTorrent (také jen torrent) je v informatice nástroj pro peer-to-peer (P2P) distribuci souborů, díky čemuž jsou datové přenosy rozkládány mezi všechny klienty, kteří si data stahují. Velmi populární je při stahování velkých objemů dat (např. distribuce Linuxu, ale většinou warez, viz níže). Název „BitTorrent“ se používá jako název distribučního protokolu, originální klientské aplikace a typu souboru s příponou .torrent.
Charakteristika Autorem BitTorrentu je Bram Cohen a uveden byl na CodeCon 2002. Referenční implementace je napsána v programovacím jazyce Python a uvolněna pod licencí BitTorrent Open Source License (upravená verze Jabber Open Source License).
Při distribuci pomocí BitTorrentu jsou soubory (může jich být víc) rozděleny klientem na menší bloky (jejich velikost resp. počet lze nastavit, obvykle mají okolo 250 kB). Každý leech může požádat kteréhokoliv peera o jemu chybějící blok, a zároveň poskytuje ostatním svoje již kompletně stáhnuté bloky. Často klient může upřednostňovat méně se vyskytující bloky, nebo i bloky na začátcích souborů.
Při obvyklé (klient–server) distribuci souborů klienti stahují data jen ze serveru, který tak musí být výkonný a potřebuje velice rychlé připojení k počítačové síti (Internetu). Protokol BitTorrent umožňuje, aby klient stahoval data nejen ze serveru, ale i od ostatních klientů, kteří mají i jen část potřebných dat. Tím protokol ulehčuje seedům (zdrojům s kompletními daty). Stahování přes BitTorrent je tím rychlejší, čím více je seedů. Cohen říká, že pro velmi populární soubory (obecně se říká, že BT má smysl, pokud v konkrétním torrentu je 10 MB a více, nebo jde o velmi aktuální a populární soubor (tj. pokud jde např. o učebnici o 300 kB, která má vysokou kvalitu a tedy stahovanost a to přiláká další lidi), pak může tento torrent žít velmi dlouho. Další aspekt je, že malé soubory se rychle šíří a tvoří velké větve, tj. seedeři mají velké ratio a soubor je velmi rychle rozšířen mezi mnoho klientů), může BitTorrent obsloužit tisícenásobně více downloadů než HTTP.
rám|vlevo|Server (zobrazený dole) postupně rozdá různým klientům různé kousky souboru, kteří si je poté vyměňují mezi sebou, čímž se zátěž serveru snižuje rám|vpravo|Srovnání klasické klient–server distribuce a distribuce s užitím BitTorrentu
Výhody BitTorrentu BitTorrentový klient je jakýkoli program, který implementuje bittorrent protokol, pomocí kterého jsou po síti přenášeny soubory. Peer je jakýkoli počítač, který reaguje na žádosti klienta.
Před sdílením souboru (nebo skupiny souborů) je nejprve vytvořen malý soubor, který se nazývá „torrent“ (např. Název.torrent). Tento soubor obsahuje metadata o sdílených datech, které mají být sdíleny na trackeru (uživatel je tam hledá ale ve skutečnosti jsou uloženy mimo tento server), což je počítač (server-daemon), který koordinuje distribuci souborů. Peeři kteří si chtějí stáhnout nějaká data si musejí nejprve získat příslušný torrent soubor, připojit se k určenému trackeru, který řekne odkud si mohou stáhnout kousky souboru(ů).
Stahování dat pomocí BitTorrentu se liší od klasického stahování pomocí HTTP (kde webový prohlížeč stahuje celý soubor najednou z jednoho zdroje) v tom, že BitTorrent použije velmi mnoho malých přenosů z různých zdrojů, zatímco webový prohlížeč použije jeden souvislý datový přenos.
Dohromady tyto rozdíly umožňují BitTorrentu dosáhnout mnohem nižších nákladů pro poskytovatele obsahu dat, vyšší spolehlivost, a mnohem větší odolnost vůči zneužití nebo náhlým přívalům zájemců, než klasický webový server. Nicméně tato ochrana si vybírá svou daň: může chvíli trvat, než stahování dosáhne maximální přenosové rychlosti, protože chvíli trvá než se připojí dostatek "seedů" a spojení se ustálí; dále se čeká na uzel ze kterého obdržím potřebná data a mohu je dále poskytovat ostatním.
Pojmy Pojem Vysvětlení torrent Torrent je soubor .torrent, tedy soubor metadat o sdílených souborech, jejich velikosti a kontrolní součet (viz Hašovací funkce) jednotlivých bloků torrentu. Také obsahuje adresu trackeru (většinou PHP skript). Dnes je často nahrazován funkcí magnet link. V přeneseném významu pak pod pojmem torrent rozumíme i sdílená data. seed Seed označuje sdílení dat neboli setí. Odvozeně seeder je uživatel, který má kompletní kopii torrentu a dále sdílí data. Čím více seederů je ve swarmu, tím větší bývá rychlost downloadu a také se zvyšuje šance na stažení kompletního souboru. Seedováním je torrent udržován v chodu. leech Čili pijavice, termín leech označuje uživatele, který ještě nemá kompletní data torrentu a stále je stahuje. peer Peer jsou všichni uživatelé, ať už data právě sdílejí nebo stahují. uploader Uploader je uživatel, který vytvořil torrent a umístil jej na tracker. swarm Všichni peers, kteří sdílejí torrent, se nazývají swarm. Například šest leeches a jeden seed je swarm (roj) sedmi. aktiv Peer s veřejnou IP nebo s přesměrovaným portem ze serveru poskytovatele připojení. Počítač uživatele je tak "viditelný" z celého internetu a může navazovat spojení s ostatními peery ve swarmu. pasiv Peer s neveřejnou IP adresou, dostupnou pouze v síti jeho poskytovatele internetu. Pro připojení k internetu používá IP svého poskytovatele. Proto není možné jeho počítač "vidět z venku". Platí tak, že pasiv se může spojit pouze s aktivem. tracker Tracker je služba, která zprostředkovává spojení mezi klienty (přechovává seznamy IP adres peerů), ale data přes něj netečou, ani nemá žádnou kopii torrentu. (Při sdílení musíte nastavit adresu jejího rozhraní pro nabízení torrentů tj. nejčastěji „adresa/announce.php“ a následně nahrát .torrent na tracker – to většinou vyžaduje registraci a přihlášení pod vaším jménem). klient Klient je Aplikace běžící v počítači uživatele. V její režii probíhá samotné stahování a sdílení dat. announce Announce je komunikace mezi trackerem a klienty uživatelů. DHT Zkratka Distributed Hash Table. Funguje jako distribuovaný tracker. Výhodou je, že na rozdíl od normálního trackeru může fungovat i v případě výpadku serveru. PEX Zkratka Peer EXchange. Umožňuje klientům vyměňovat si mezi sebou seznamy peerů a spojit se tak s uživateli kteří nejsou zahrnuti v seznamu trackeru. ratio Ratio je poměr mezi odeslanými a staženými daty (odeslaná data/stažená data = ratio). Uživatel by měl dodržovat minimální ratio = 1. Obecně se za slušnost považuje alespoň ratio = 1,5.
Vytváření a publikování Torrentů Peer distribuující data zachází se souborem jako s pevně daným počtem částí s velikostí mezi 64kB a 4MB. Peer vytváří pro každou část kontrolní součet, pomocí SHA algoritmu a zaznamenává je do torrent souboru. Při použití větší velikosti částí souboru se snižuje velikost torrent souboru, což snižuje generovanou zátěž, ale také snižuje efektivitu protokolu. Peer průběžně porovnává předem vypočtené kontrolní součty s daty, která stahuje, a zajišťuje tak integritu dat. Peeři, kteří poskytují kompletní soubory se nazývají seedeři a peeři, kteří poskytují data od začátku se nazývají původní seedeří (initial seeder).
Struktura dat v torrent souboru závisí na použité verzi BitTorrentu. Podle konvence mají jména torrent souborů příponu .torrent. Torrent soubory mají „oznamovací“ sekci, která specifikuje URL trackeru a takzvanou „info“ sekci, která obsahuje (doporučená) jména souborů, jejich délku, délku částí dat a kontrolní součty všech částí dat. Vše je klientem využíváno k ověření integrity stažených dat.
Torrent soubory jsou zpravidla zveřejňovány na webových stránkách nebo jinde a jsou spojeny s trackerem. Tracker udržuje seznamy klientů, kteří aktuálně sdílejí torrent. V beztrackerovém systému (decentralizovaný tracking) se všichni peeři chovají jako tracker. Prvním takovým implementovaným klientem byl Azureus, který používal distribuovanou hašovací tabulku (DHT). Později byl Bittorentem vyvinut a adoptován alternativní a nekompatibilní Mainline DHT.
Pro vytvoření torrentu je třeba uvést také seznam trackerů. Je možné použít veřejné trackery, které shromažďují pouze seznam peerů identifikovaných podle IP adresy a hashe souboru, o který mají zájem.
Stahování torrentů a sdílení souborů Uživatelé prohledávají web s cílem najít torrent, o který se zajímají, mohou si jej stáhnout a otevřít například BitTorentovým klientem. Klient se spojí s trackerem, který je specifikovaný v torrent souboru. Tracker poskytne klientovi seznam peerů, kteří aktuálně přenášejí části dat daných souborů specifikovaných v torrent souboru. Klient se připojí k těmto peerům a obdrží náhodné části dat. Jestliže swarm obsahuje jenom jednoho seedera, který tato data sdílí od začátku (initial seder), klient se přímo k němu připojí a požaduje části dat.
Klienti obsahují mechanismus pro optimalizaci jejich stahovacího (download) a nahrávacího (upload) poměru. Například klient záměrně stahuje části dat v náhodném pořadí, aby se zvýšila šance P2P výměny dat, protože je možné jen tehdy, pokud mají peeři staženy různé části dat.
Efektivita výměny dat závisí hodně na rozhodnutí, komu budou klienti posílat data. Klient může upřednostňovat posílání dat peerum, kteří data zpětně sdílejí, což podporuje férovou výměnu. Avšak přísná pravidla často vyústí k neoptimálním situacím, když nově připojení peeři nejsou schopni odesílat data nebo když dva peeři s dobrým vzájemným spojením si data nevyměňují, protože žádný z nich nepřevezme iniciativu. Proti těmto jevům používá oficiální BitTorrent klient mechanismus zvaný „optimistic unchoking“ (optimistické uvolňování), kdy klient rezervuje část přenosové kapacity pro seedování dat náhodným peerům v naději, že najde lepší partnery, a zároveň umožňuje nově příchozím peerům připojení do swarmu.
Adopce V současné době vzrůstá počet individuálních osob a organizací, kteří používají BitTorrent k distribuci vlastních licencovaných materiálů. Nezávislí „adoptivní rodiče“ říkají, že bez použití BitTorrent technologie a jím umožněného dramatického snížení nároků na jejich síťový hardware a propustnost datového připojení, by si nemohli dovolit distribuovat své soubory.
Film, video a hudba BitTorrent Inc. nahromadil řadu licencí z hollywoodských studií k distribuci obsahu jejich internetových stránek. Sub Pop Records vydává písně a videa přes BitTorrent Inc. k distribuci tisíců alb. Skupina Ween využívá internetové stránky Browntracker.net k bezplatné distribuci svých audio a video záznamů živých vystoupení. Také skupiny Babyshambles a Libertinesy (obě spojené s Petem Doherty) značně užívaly torrenty k vydání stovek demo verzí a živých videí. Přes BitTorrent často vydává svá alba i americká rocková skupina Nine Inch Nails. Podcasting software začíná integrovat BitTorrent, aby pomohl podcasterské dohodě s požadavky na stažení jejich „MP3 rádio“ programů. Především Juice a Miro (dříve známé jako Democracy Player) podporuje automatické zpracování .torrent souborů z RSS kanálů. Podobně jako někteří BitTorrent klienti, např. µTorrent, jsou schopni zpracovat internetové kanály a automaticky stáhnout obsah nalezený uvnitř. BitTorrent poskytuje i DGM Live! nákupy.
Rozhlas a televize V roce 2008 se společnost CBC stala prvním veřejným vysílačem v Severní Americe, aby mohla provozovat své pořady dostupné ke stažení pomocí BitTorrent protokolu. V březnu roku 2008 začala Norsk rikskringkasting (NRK) experimentovat s BitTorrentovou distribucí z jejich stránky. Publikován je pouze vybraný materiál, ve kterém je NRK kompletním vlastníkem. Odpověď byla velice pozitivní a NRK plánuje nabídnout více materiálu.
Osobní materiál Služba Amazon S3 „Simple Storage Service (Jednoduchá služba pro úložiště dat)“ je internetová škálovatelná služba pro úložiště dat s jednoduchým webovým rozhraním, vybavená zabudovanou BitTorrentovou podporou.