X36MTI Libor Bánovský
Klient – server: ● Připojení více klientům k jednomu serveru ● Sdílení zdrojů serveru ● Pro velké soubory mnoho diskových operací ● Nedostává se na jiné aplikace ● Vysoké nároky na připojení Úvod – problémy sdílení
BitTorrent: ● Soubory jsou rozděleny ● Zdroj dat na serveru ● Klienti sdílejí části mezi sebou ● Server lze časem vyřadit ● Rychlost roste s popularitou
Porovnání
Obecně BitTorrent: ● Autorem Bram Cohen ● Vznik 2002 ● Open-source licence ● V Pythonu ● Vžilo se pro: – Protokol – Klienta –.torrent metafile ● Orientovaný na web – běží přes HTTP
Terminologie ● Torrent – metafile, poskytovaný download ● Peer – instance klienta, nemá kompletní download ● Seed – peer s kompletním downloadem ● Leech – peer s nekompletním downloadem ● Swarm – všichni co sdílí torrent ● Tracker – služba bdící nad torrentem – port 6969 – statistiky
Stahování ● Nainstalovat BitTorrent klienta ● Prohlížet web ● Kliknout na link.torrent souboru ● Nalézt, kam požadovaný soubor uložit na disk ● Počkat až se dokončí stahování ● Ukončit klienta – do té doby sdílí stažená data
Práce klienta ● Z medafilu zjistí tracker ● Získání seznamu okolních seedů/peerů ● Připojení s okolními klienty ● Výměna částí downloadu ● Update seznamu z trackeru ● Po stažení poskytovat data ostatním ● Dokud není ukončen
Strategie výběru ● Podle příslušnosti – klasický download, nejrychleji celistvé bloky ● Podle vzácnosti – nejmenší zátěž pro server, nejpoužívanější ● První náhodný – pokud nejsou data, pro rychlý rozjezd ● Dokončení – u posledních bloků downloadu, broadcast
Sdílení ● Spuštění trackeru ● Spuštění web serveru, např. Apache ● Nastavení asociace přípony.torrent s mimetypem application/x-bittorrent ● Vytvoření metadat (.torrent) ● Vložení těchto metadat na web server ● Přilinkování se na tato metadata z nějaké webové stránky ● Spuštění downloaderu, který má sdílená data
.torrent ● Malý soubor popisující download ● Bencoding ➔ info: popis souboru torrentu. Jsou dvě možné formy:jedna pro případ 'single-file' torrentu bez adresářové struktury a druhá pro 'multi-file' torrent. ➔ announce: url trackeru ➔ announce-list: (volitelně) rozšíření od původní specifikace umožňující použití více trackerů ➔ creation date: (volitelně) datum vytvoření, ve standardu unixového formátu (integer v sekundách od 1-Jan :00:00 UTC) ➔ comment: (volitelně) libovolný string ➔ created by: (volitelně) jméno a verze programu použitého k vytvoření.torrent souboru ➔ name: jméno souboru ➔ length: velikost v bytech ➔ md5sum: (volitelně) 32-znakový hexadecimální string odpovídající MD5 součtu souboru.
.torrent příklad d8: announce30: comment30: NetBSD for I386 - Disc 213: creation datei e4: infod6: lengthi e4: name21: NetBSD-i ISO12: piece lengthi262144e6: pieces52680:
Bezpečnost a nectnosti ● Neposkytuje anonymitu – IP je vidět ● Protipirátské organizace torrenty sledují – Falešné torrenty – Boti – Několik odsouzení ● Vymírání starších torrentů – Obrana formou sledování UD ratia
Klienti ● BitTorrent ● Azureus ● μTorrent ● BitComet ● TorrenTopia ● ABC ● Tribler ● RTorrent ● KTorrent ● Deluge
Zdroje ● Stránka Brama Cohena – ● Oficiální stánka BitTorrentu – ● Wikipendie – – ● Root.cz – ● Bittorrent.webz.cz –