BitTorrent

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

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 s příponou .torrent.

Charakteristika[editovat | editovat zdroj]

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.

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
Srovnání klasické klient-server distribuce a distribuce s užitím BitTorrentu

Výhody BitTorrentu[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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
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
Všichni uživatelé, ať už data právě sdílí nebo stahují.
uploader
Uživatel který vytvořil torrent a umístil jej na tracker.
swarm
Všichni peers, kteří sdílí 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
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
Aplikace běžící v počítači uživatele. V její režii probíhá samotné stahování a sdílení dat.
announce
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
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ů[editovat | editovat zdroj]

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

Stahování torrentů a sdílení souborů[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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[editovat | editovat zdroj]

  • 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[editovat | editovat zdroj]

  • 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[editovat | editovat zdroj]

  • 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[editovat | editovat zdroj]

  • 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ě[editovat | editovat zdroj]

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 a síť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čů[editovat | editovat zdroj]

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 Mininova, BTJunkie, 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).

Reference[editovat | editovat zdroj]

  1. http://torrent.fedoraproject.org – seznam torrent souborů distribuce Fedora
  2. http://isoredirect.centos.org/centos/5/isos/x86_64/ – torrent soubory projektu CentOS

Externí odkazy[editovat | editovat zdroj]