BitTorrent

Z Wikipedie, otevřené encyklopedie

Skočit na: Navigace, Hledání
Internetové protokoly
Aplikační vrstva
Transportní vrstva
Síťová vrstva
Linková vrstva
Fyzická vrstva

BitTorrent je peer-to-peer (P2P) nástroj pro distribuci souborů. Jeho autorem je Bram Cohen a uveden byl na CodeCon 2002. Referenční implementace je napsaná v Pythonu a uvolněna pod licencí BitTorrent Open Source License (upravená verze Jabber Open Source License). Název „BitTorrent“ slouží jako název pro distribuční protokol, originální klientskou aplikaci a typ souboru .torrent.

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 250kB). 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 rychlou linku. Protokol BitTorrent ale zajišťuje, že si klienti mohou vyměňovat data i mezi sebou, čímž ulehčují seedům. 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 rozšíří velmi rychle mezi mnoho klientů), může BitTorrent obsloužit tisíckrát více downloadů než HTTP.

Tato animace zobrazuje příklad, kde server (zobrazený dole) postupně rozdá různým klientům různé kousky souboru, kteří si je poté vyměňují mezi sebou – výhoda tohoto způsobu je menší zatížení severu
Srovnání klasické klient-server distribuce a distribuce s užitím BitTorrentu

Obsah

[editovat] Popis činnosti

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(ů).

Přestože nakonec oba přenosy souborů po síti proběhnou, stahování pomocí BitTorrent se liší od klasického stahování z HTTP (kde se stahuje celý soubor najednou z jednoho zdroje) v tom, že BitTorrent vytvoří mnoho malých data požadavků přes různé TCP sockety, přičemž webové prohlížeče obvykle vytvořit jednotný HTTP GET požadavek během přes jediný TCP socket.

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ý HTTP server. Nicméně, tato ochrana si vybírá svou daň: stahování může chvíli trvat než 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. U bittorentu je typické že rychlost stahování pomalu vzrůstá a když je stahování u konce tak klesá zpět dolů. To kontrastuje s HTTP serverem, který je více náchylný přetížení či zneužití, ale dosažení maximální rychlosti přenosu je velice rychlé.

[editovat] Pojmy

torrent
Je buď soubor .torrent, tedy soubor metadat o downloadu, nebo všechny soubory, které jsou jím popisovány.
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íce seedů 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 bývá používán pro neslušného peera, který má velmi malý poměr uploadu/downloadu, nebo který opustí swarm hned po tom, co se stane seedem. 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 leeches a 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 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)
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.

[editovat] Vytváření a publikování Torrentů

Peer distribuující data soubor, zachází se souborem jako s pevně daným počtem částí, obvykle mezi 64 kB a 4 MB pro každého. Peer vytváří kontrolní součet pro každou část, pomocí SHA1 hashing algoritmu a zaznamenává je do torrent souboru. Části s velikostí větší než 512KB, sníží velikost torrent souboru, pro velmi velké vytížení, ale tvrdí se, že se tím snižuje efektivita protokolu. Když později jiný peer obdrží specifický kus, kontrolní součet toho daného kusu se porovná se zaznamenaným kontrolním součtem, aby se zjistilo zda tento kus dat je bezchybný. 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)

Přesné informace obsažené v torrent souboru závisí na verzi bittorrent protokolu. 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 části dat, a SHA-1 hash kód pro každou část dat, všechny tyto informace jsou používány klientem k ověření integrity dat které obdržel.

Torrent soubory jsou zpravidla zveřejňovány na webových stránkách nebo jinde, a spojeny s trackerem. Tracker udržuje seznamy klientů, kteří se aktuálně sdílejí torrent. Alternativně v bez-trackerovém systému (decentralizovaný tracking) všichni peeři se chovají jako tracker. Azureus byl prvním BitTorrent klientem který implementoval takovýto systém prostřednictvím distribuované hašovací tabulky - (DHT) metoda. Alternativní a nekompatibilní DHT systém, známý jako Mainline(hlavní) DHT, byl později vyvinut a adoptován BitTorrentem (Mainline), μTorrent, rTorrent, KTorrent, BitComet, a záplava klientů.

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

Uživatelé prohledávají web s cílem najít torrent o který se zajímají, stáhnou si ho a otevřou si ho BitTorentovým klientem. Klient se připojí s trackerem, který je specifikovaný v torrent souboru, od kterého obdrží seznam peerů, kteří aktuálně přenášejí kousky data daného souboru(ů) specifikovaných v torrent souboru. Klient se připojí k těmto peerům a obdrží náhodné kousky dat. Jestliže swarm obsahuje jenom jednoho seedera který tyto 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 k optimalizaci jejich stahovacího(download) a nahrávacího(upload) poměru. Na příklad klient stahuje části dat v náhodném pořadí k zvýšení šance výměny dat, což je možné pouze když dva peeři mají různý kus dat ze souboru který stahují.

Efektivita takovéto výměny dat závisí hodně na politice toho komu klient určí 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. Ale přísná politika často vyústí k sub-optimálním situacím, jako když nově připojení peeří jsou neschopni odesílat data, protože zatím žádné kousky dat nemají, nebo když dva peeři s dobrým spojením mezi nimi si nevyměňují data jednoduše proto protože žádný z nich nechce nepřevezme iniciativu. Proti těmto efektům, oficiální BitTorrentoví klient používá mechanismus zvaný „optimisti unchoking(optimistické pouštění)“ kterým klient rezervuje část volné šířky pásma pro seedování(sdílení) částí dat náhodným peerům v naději najít dokonce lepší partnery a zajistit nově příchozím peerům šanci připojení se do swarmu.

[editovat] Adopce

Vzrůstá počet individuálních osob a organizací kteří používají BitTorrent k distribuci jejich vlastních licencovaných materiálů. Nezávislí adoptivní rodiče říkají že bez použití BitTorrent technologie a její dramatické snížení nároků na jejich privátní síťoví hardware a šířku pásma, by si nemohli dovolit distribuovat své soubory.

[editovat] Film, video a hudba

  • BitTorrent Inc.nahromadil řadu licencí z hollywoodských studií k distribuci obsahu jejich webových stránek.
  • Sub Pop Records vydává tracky a videa přes BitTorrent Inc . k distribuci jejich 1000+ alba. Skupina Ween využívá webové 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 feedů. Podobně jako nějací BitTorrent klienti, např. µTorrent, jsou schopni zpracovat webové feedy a automaticky stáhnout obsah nalezený uvnitř jich. BitTorrent poskytuje i DGM Live! nákupy.

[editovat] Vysílače(Broadcasters)

  • V roce 2008, společnost CBC se stala prvním veřejným vysílačem v Severní Americe aby mohla provozovat svou show dostupnou ke stažení pomocí BitTorrent protokolu.
  • The Norwegian Broadcasting Corporation (NRK) experimentovala od března 2008 s BitTorrentovou distribucí z jejich stránky. Pouze vybraný materiál, ve kterém je NRK kompletním vlastníkem, je publikován. Odpověď byla velice pozitivní a NRK plánuje nabídnout více materiálu.

[editovat] Osobní Materiál

  • Služba Amazon S3 "Simple Storage Service(Jednoduchá služba pro úložiště dat)" je škálovatelná na internetu založená 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 také umožňuje návštěvníkům si stáhnout „stub“ zavaděč, který se chová jako BitTorrentoví klient pro stažení požadovaného souboru, dovoluje uživatelům kteří nemají BitTorrentoví software použít BitTorrentoví protokol. Je to podobné konceptu samo-rozbalovacího archivu.

[editovat] Software

  • Blizzard Entertainment používá BitTorrent(pomocí vlastního klientu zvaného "Blizzard Downloader"), k distribuci vetšiny materiálů, pro World of Warcraft, včetně hry samotné.
  • Mnoho hlavních softwarových projektů, ať už volných, nebo s otevřeným zdrojovým kódem, podporují také BitTorrent, jako tradiční způsob stahování jejich produktů, aby zvýšíli dostupnost(jejich souborů) a snížili zátěž na jejich vlastních serverech, zvláště když se jedná o větší soubory.

[editovat] Síťový dopad

CableLabs, výzkumná organizace, která vytvořila v Severní Americe kabeloví průmysl, 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 kteří používají NAT, musejí udržovat tabulky zdrojových a cílových IP adres a portů. Typicky domácí routery jsou limitovány okolo 2000 tabulkových políček kdežto nějaké dražší routery mají větší tabulkovou kapacitu. BitTorrent často kontaktuje 300-500 serverů za sekundu rapidně plní NAT tabulky. Toto je běžný případ proč se domácí routery zahlcují.

[editovat] Indexace

BitTorrentoví protokol neposkytuje žádnou možnost k indexaci torrent souborů. Výsledkem je, poměrně malý počet stránek hostovalo jako odkaz k materiálům s autorským právem, interpretace těchto stránek zvláště těch které jsou náchylné na právní postih. Pár typů webových stránek podporuje 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 souborů. Také provozují BitTorrentové trackery pro tyto soubory. 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 nahráváním.

Vyhledávací enginy 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 dovolují uživateli se zeptat na daný soubor který hledají (dotaz může obsahovat fráze, či klíčová slova) a obdrží seznam odkazů k torrent souborům, který souhlasí s jejich kriterii. Tento seznam může být často seřazen podle určitých respektovaných kriterií, podle relevance(seedeři-peeři-ratio) či podle nejpopulárnějšího.

[editovat] Klientské aplikace BitTorrentu

tak ne!

Tento článek zřejmě obsahuje výsledky vlastního výzkumu nebo neověřená tvrzení. Prosím pomozte Wikipedii tím, že přidáte reference. Podívejte se na diskusní stránku, kde mohou být uvedeny další detaily.

  • BitTorrent – BitTorrent klient autora komunikačních protokolů BitTorrent. Jeho uživatelské rozhraní je jednoduché. Klient je napsán v Pythonu, a lze jej provozovat na řadě platforem včetně Windows, Linux a MacOSX.[zdroj?]
  • Vuze – (dříve Azureus) Funkčně vyspělý multiplatformní opensource BitTorrent klient. Je napsán v Javě, takže funguje na většině současných operačních systémů. Ihned po instalaci je uživatelské rozhraní v češtině (ovšem některé nové funkce ještě přeloženy nejsou).[zdroj?]
  • µTorrent – mimořádně nenáročný na systémové zdroje, jeho celková velikost se pohybuje kolem 150 KB. Uživatelské rozhraní je velmi podobné výše zmíněnému Azureu. Je napsaný v C++. Dostupný je pro operační systémy Microsoft Windows a MacOSX.[zdroj?]
  • BitComet – také nenáročný na systémové zdroje, napsaný v C++, dostupný pouze pro operační systémy Microsoft Windows.[zdroj?]
  • TorrenTopia – spíše pro méně náročné uživatele. Zajímavý klient pro torrent soubory. Jako jeden z mála umožňuje změnu vzhledu. Neobsahuje oficiální český překlad. Výhodou je možnost vyhledávání torrentů pomocí vestavěného vyhledávače. Nevýhodou je, že neobsahuje pokročilé funkce, jako třeba blokování IP adres.[zdroj?]
  • ABC – Rychlý spolehlivý, méně funkcí, jednodušší alternativa k µTorrentu.
  • Tribler – Tento klient je odvozený od ABC klienta, ale nabízí společenské sdílení. Nemusíte torrenty vyhledávat, vyberete je ze seznamu ostatních uživatelů. Pokud stahujete stejné torrenty jako jiný uživatel, v seznamu uvidíte jako první torrenty uživatele se stejnými zájmy (řazení podle doporučení = shoda zájmů).[zdroj?]
  • rTorrentKonzolový klient pro unixové systémy napsaný v C++.
  • BitLord – další pokročilý BitTorrent klient pro Windows.[zdroj?]
  • KTorrent – nenáročný BitTorrent klient pro Linuxové prostředí KDE, obsahuje například integrovaný vyhledávač, týdenní časovač objemu proudu dat, umožňuje zabezpečené stahování a filtr IP adres, výběr jednotlivých souborů ke stažení a jako všechny aplikace KDE je kompletně lokalizován.[zdroj?]
  • Deluge – klient napsaný v Pythonu a používající GTK+.[zdroj?]

[editovat] Externí odkazy