BitTorrent

BitTorrent 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 spříponou .torrent.

Charakteristika                                   

Autorem BitTorrentu je Bram Cohen a uveden byl naCodeCon 2002Referenční implementace je napsána v programovacím jazyce Python a uvolněna pod licencí BitTorrent Open SourceLicense (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í kpočí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.

 

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 obsahujemetadata 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

torrent

Je buď soubor .torrent, tedy soubor metadat o downloadu, nebo všechny soubory, které jsou jím popisovány. Dnes je často nahrazován funkcí magnetlink

soubor .torrent 

Obsahuje metadata o distribuovaných souborech. Obsahuje jména souborů, jejich velikosti a kontrolní součet (viz Hašovací funkce) jednotlivých blokůtorrentu. Také obsahuje adresu trackeru (většinou PHP skript).

seed

Peer, který má kompletní kopii torrentu a stále nabízí upload. Čím víceseedů 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.

peer

Instance BitTorrent klienta běžícího na počítači. Obvykle je peerem nazýván ten, kdo nemá kompletně stažený torrent.

leech

Termín leech označuje peera, který opustí swarm hned poté, co si stáhne kompletní data (tj. ihned poté, co stane seedem) a který má malý poměr uploadu/downloadu (za minimum se považuje 1:1), přičemž takové chování se považuje za nevhodné až neslušné. Leeches obvykle spotřebovávají největší přenosové pásmo swarmu.

swarm

Všichni peers, kteří sdílí torrent, se nazývají swarm. Například šest leechesa jeden seed je swarm (svazek) sedmi.

tracker

Je služba, která zprostředkovává a režíruje spojení mezi klienty (přechovává seznamy IP adres peerů), ale data přes něj netečou, ani nemá žádnou kopiitorrentu. (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)

UD Ratio

poměr mezi uploadem a downloadem, obecně platí, že kdo nemá ratio 1,5 a odpojí se od trackeru, je velmi neslušný, úplné minimum je ratio=1, kdo má pod 1 často riskuje ban – tj. vyhození z trackeru. (To se netýká případu, kdy o Torrent není zájem, např. 5 dní) Ideální je seedovat, dokud je o soubor zájem. Zde je nutno si uvědomit, že na tom závisí životnost torrentu, to je podstata celého sdílení na BT. Síti byste měli vrátit to, co si od ní vezmete (tj. Ratio=1) anebo ještě lépe více (tj. Ratio=1+). Další aspekt je sdílení dat, která jste nestáhli z BT, tím podporujete síť BT jako takovou (BT nemá žádnou centrálu a nelze ji definitivně odpojit/zastavit).To vše záleží na interních pravidlech jednotlivých trackerů.

reseed 

Pokud má jeden nebo více leechů „roztažený“ nějaký torrent a není již k dispozici celý tj. několik leechů má několik různých částí, ze kterých ale nelze sestavit kompletní soubor, nebo torrent (první znak umírajícího torrentu, to se nestane, pokud každý má ratio alespoň 1), mohou se pokusit poprosit někoho, kdo ho má celý aby začal znovu seedovat a torrent opět oživil tj. požádat o Reseed.

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í integritystaž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. Přiklad veřejných trackerů, které můžete použít při vytváření torrentů:

udp://tracker.publicbt.com:80/announce

udp://tracker.openbittorrent.com:80/announce

http://opentracker.nodex.cz:80/announce

udp://tracker.ccc.de:80/announce

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ílí, 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 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 The Norwegian Broadcasting Corporation (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.

Torrentový blog nabízí zjednodušený BitTorrentový tracker, který umožňuje blogerům a netechnicky vzdělaným uživatelům hostovat na svých stránkách BitTorrentový tracker. Torrentový blog umožňuje návštěvníkům stáhnout si „stub“ zavaděč, který se chová jako BitTorrentový klient. Tím umožňuje uživatelům, kteří nemají BitTorrentový software, použít BitTorrentový protokol a stáhnout požadovaný soubor. Je to podobné konceptu samorozbalovacího archivu.

Software

Blizzard Entertainment používá BitTorrent (pomocí vlastního klientu zvaného „Blizzard Downloader“) k distribuci většiny materiálů pro World of Warcraft, včetně hry samotné.

Mnoho velkých softwarových projektů, ať už svobodných nebo s otevřeným zdrojovým kódem, také podporují BitTorrent jako tradiční způsob stahování jejich produktů, aby zvýšily dostupnost svých souborů a snížili zátěž na vlastních serverech, zvláště pokud se jedná o větší soubory.[1][2]

Vliv na počítačové sítě

Výzkumná organizace CableLabs pro kabelový průmysl v Severní Americe odhaduje, že BitTorrent reprezentuje 18 % z celého širokopásmového přenosu dat. V roce 2004 CacheLogic zvýšila toto číslo odhadem na 35 % z celého přenosu na Internetu. Rozpory v těchto číslech jsou způsobeny rozdílem v metodě použití k měření P2P přenosu dat na Internetu. Routery (směrovače), které používají NAT, musejí udržovat tabulky zdrojových a cílových IP adres asíťových portů. Typický domácí router má limit okolo 2000 položek, zatímco dražší mají větší kapacitu. BitTorrent často kontaktuje 300-500 serverů za sekundu, takže rychle zaplní NAT tabulky, což je běžný případ, proč se domácí routery zahlcují.

Indexace vyhledávačů

BitTorrentový protokol neposkytuje žádné prostředky pro indexaci torrent souborů. Výsledkem je poměrně malý počet stránek hostujících odkazy k materiálům s autorskými právy. Některé webové stránky podporují průzkum a distribuci dat na BitTorrentových sítích.

Veřejný tracker, jako The Pirate Bay, umožňuje uživatelům hledat a stahovat z jejich nabídky torrent soubory. Provozují pro tyto soubory také BitTorrentové trackery. Uživatelé mohou obyčejně také uploadovat torrent soubory s obsahem, který si přejí distribuovat.

Privátní trackery, jako Demonoid, operují jako veřejný tracker s tím rozdílem, že mají omezený přístup. Je nutné se registrovat a udržovat správný poměr mezi stahováním a poskytováním (anglicky download and upload ratio).

Vyhledávací enginy (jádra) dovolují vyhledat torrentové soubory, které jsou umístěny a distribuovány na jiných stránkách. Například MininovaBTJunkie,Torrentz a isoHunt. Tyto stránky umožňují hledat konkrétní soubory (dotaz může obsahovat fráze či klíčová slova). Jako odpověď je poskytnut seznam odkazů k torrent souborům, který vyhovuje zadaným požadavkům a který může být seřazen podle určitých kritérií (relevance (poměr seedeři-peeři), popularity).