# BitTorrent

Program KTorrent v systéme Ubuntu
**BitTorrent** je peer to peer internetový protokol, ktorý poskytuje rýchly, jednoduchý a efektívny prenos veľkých súborov medzi ľubovoľným počtom ľudí.

## Charakteristika

Sieť BitTorrent je postavená na inom princípe ako bežné P2P siete. Zatiaľ čo pri P2P sieťach ako je napríklad Napster, Soulseek alebo Kazaa nastáva výmena dát vždy medzi dvojicou užívateľov, z ktorých jeden musí vlastniť celú kópiu žiadaného súboru, pri BitTorrente nastáva výmena v tzv. roji užívateľov (angl. swarm). Tento princíp podstatne urýchľuje sťahovacie časy: ak si v normálnych P2P sietiach chce 100 užívateľov stiahnuť žiadaný súbor od jeho poskytovateľa A, musí sa každý z tých 100 užívateľov napojiť na A a začať sťahovať celý súbor. Takto sa rýchlosť pripojenia A musí rozdeliť medzi 100 záujemcov o stiahnutie súboru. BitTorrent optimalizuje distribúciu dát v roji tak, že ak si nejaký užívateľ stiahne časť súboru od A, tuto časť začne zároveň poskytovať ostatným užívateľom v roji. Takto dochádza k výmene dát nielen medzi A a záujemcami o súbor, ale aj medzi samotnými záujemcami.

BitTorrent komunita využíva stránky obsahujúce torrenty, ktoré sa nazývajú indexovacie stránky. Tieto stránky sú veľmi populárne, za svoju popularitu ale muselo mnoho z nich zaplatiť tým, že MPAA (Motion Picture Association of America) a asociácie dohliadajúce na dodržiavanie autorského práva ich rušia. Samo autorské právo poskytuje celkom nejasný výklad situácie: na indexovacích serveroch sa nenachádzajú kópie dát, na ktoré sa vzťahujú autorské práva. Indexovacie servery poskytujú len informácie o klientoch, ktorí sú aktívni v roji pre konkrétny torrent. MPAA a RIAA však na základe medzinárodnej zmluvy DMCA (Digital Millenium Copyright Act) bojujú proti trackerom a indexovacím serverom. Napriek tomu ale nie je núdza o dané servery, užívateľ len musí vedieť, ktoré z nich momentálne fungujú, resp. nefungujú. Medzi stabilne fungujúce torrent servere patri napr. The Pirate Bay alebo český CzTorrent Tracker. V súčasnosti sa čoraz viac používajú agregačné servery, ktoré vyhľadávajú žiadaný súbor na množstve rôznych trackerov. Známy agregačný server je napríklad ScrapeTorrent (scrape z anglického výrazu *web scraping* - teda kopírovanie informácií z webstránok).

## Definície

### Tracker

Centrálny server pre daný torrent sa nazýva tracker. Práve z neho stiahnete a spustíte torrent súbor. Tracker si udržuje informácie o všetkých klientoch, ktorí majú vami sťahovaný súbor (či už celý, alebo len časť). Každý z klientov komunikuje s trackerom a žiada si od neho dáta o iných klientoch, ktorí by mohli mať chýbajúce časti súboru. Po získaní tejto informácie už klienti medzi sebou komunikujú samostatne. Tracker môže byť otvorený (open tracker) alebo uzavretý (private tracker). Rozdiel je v tom, že pokým open tracker spracuje každý torrent, private tracker spracuje len torrent už existujúci v jeho databáze.

### Swarm

Roj užívateľov sťahujúcich daný súbor. Ak sa v roji nachádza dostatočne množstvo ľudí zdieľajúcich dáta, BitTorrent zabezpečí rýchlu distribúciu dát. Spravidla platí, že čím viac užívateľov sa nachádza v roji, tým väčšie rýchlosti sa dosahujú.

### Seeder

Seed(er) (seed = siať) je klient v torrentovej sieti, ktorý má celú kópiu požadovaného archívu. Aby akýkoľvek archív fungoval (mohol byť stiahnuteľný), musí existovať minimálne jeden seeder. Niekedy, za špeciálnych okolností, sa stane, že nikto nemá celý archív, ale každý z účastníkov má malú časť - nazýva sa distribuovaná kópia. Preto sa odporúča, po stiahnutí, nechať bežať bittorrent klient aspoň takú dlhú dobu, akú ste archív sťahovali, aby sa archív dostal medzi čo najviac ľudí a mohol byť ďalej rýchlo rozšírený.

V neskorších verziách je možné tvoriť aj tzv. *seedless* torrenty, t. j. bez seedu, čo umožňuje aj ľuďom bez možnosti hosťovať archív, zdieľať ho.

### Leecher

Leech(er) je klient torrentovej siete, ktorý ešte nemá kompletnú kópiu archívu. Keď nový klient začne sťahovať súbor, stáva sa leecherom, až pokiaľ nestiahne celý súbor a stane sa (prípadne) seederom. Názov 'leecher' (angl. *leech* = *pijavica*) nie je úplne presný, pretože neznamená presne to, čo má znamenať. Za leechera sa normálne považuje niekto, kto veľa sťahuje a málo (alebo vôbec) posiela (berie - nedáva). V tomto význame je ale leecher užívateľ, ktorý dáta sťahuje, ale ešte nemá kompletnú kópiu a preto sa ešte ani nemôže stať seederom.

### Torrent súbor

Na to, aby klient mohol niečo stiahnuť z bittorrent siete, musíte mať .torrent súbor. Tento súbor obsahuje informácie o tom, kde sa nachádza tracker (indexovacia stránka). Archív je kompletná sada, určená na sťahovanie, obsahujúca jeden alebo viac súborov. Sťahovanie v tejto sieti je jednoduchá záležitosť - stiahnutie .torrent súboru v browseri a spustenie sťahovania v bittorrent kliente, kde si nastavíte, kam sa má archív stiahnuť. Samotný torrent súbor je malý, má len niekoľko kB, čiže jeho stiahnutie je otázkou sekúnd.

### Share ratio

Každý klient môže aj sťahovať aj zasielať časti daného súboru. Pomer medzi zasielaním a sťahovaním udáva tzv. share ratio. Medzi etiketu patrí nechať klienta spusteného aj po skončení sťahovania, aby share ratio dosiahlo hodnotu aspoň 1,0, t. j. aby klient poskytol aspoň toľko dát, koľko stiahol.

## Známe programy pre prácu s protokolom BitTorrent

* KTorrent
* Vuze (predtým Azureus)
* BitComet
* BitTornado
* Opera
* Qbittorrent
* QTorrent
* µTorrent
* Transmission
* Rozšírenia pre Mozilla Firefox
* BitTorrent

## Externé odkazy

* Oficiálne stránky BitTorrent
* Priklad na private Torrent Tracker
* Priklad pre Open Tracker Archivované 2014-01-05 na Wayback Machine