Torrent
Sisejuhatus
Torrentit http://en.wikipedia.org/wiki/BitTorrent_(protocol) (ehk täpsemalt bittorrentit mis ametlikuks nimeks) peetakse peamiselt seotud olevat ebaseaduslike autoriõigusega kaitstud materjalide levitamisega. Tegelikult on torrent mõeldud samamoodi nagu apache veebiserver igasuguse materjali mugavaks levitamiseks. Tegemist on ühe võimsa p2p lahendusega
Näiteks võib tekkida juhus kui on vaja vahetada kahe arvuti vahel suuri andmehulki, serverisse ülespanekuks aga ruumi napib, ühte arvutitesse mingeid serverit (näit ftp) teha keeruline. Samuti on lihtsam jagada aeglaste ühenduste taga mitmetele inimestele ühte faili korraga, lahendada faili tõmbamise katkestamist või peatamist jms.
Torrent kasutab klient - server arhidektuuri ehk jagamine koosneb kahest osast tracker kui server ning klient nt utorrent windowsis http://www.utorrent.com/ ja ktorrent http://ktorrent.org linuxis/freebsd's.
Üheks torrenti suurimaks eeliseks on see ,et ta võimaldab paljudel kasutajatel üheaegselt sama faili tõmmata kuna jagab samal ajal allatõmmatud tükke failist kasutajate vahel kiirendades nii tugevalt faili jagamist ning hajutades ühtlasi sujuvamalt võrgukoormust mööda internetti laiali. Seda tööpõhimõtet iseloomustab ehk kõige paremini allolev skeem
___ | | |___| tracker * * * ******************* * * * * * * * _*_ * * |38%|A * * |___| * * / \ * * / \ * * / \ * Swarm * / \ * * / \ * * / \ * */ \* _*_ B _\_ C |67%|_____________|100| |___| |_%_| A kasutaja kes omab failist 38% B kasutaja kes omab failist 67% C kasutaja kes omab faili terikuna ja ainult jagab seda * trackeri ja klientide vaheline info seoses sellega kes mis tükke omab /|- andmed, kasutajate vaheline liiklus
Failide vahetamine toimib selliselt ,et torrenti kliendis nt utorrentis tekitatakse torrenti fail mis seotakse enda falisüsteemis asuva infoga mida soovitakse jagada ning kindla trackeriga mille kaudu suhtlus käima hakkab ja seejärel jagatakse see inimestele
Kõik jagatavad failid jagatakse nö tükkideks (pieces) mida siis vahetatakse kasutajate vahel pidades arvestust mis on juba olemas ja mida vaja tõmmata. Bittorrenti näol on tegemist pidevalt areneva ning täieneva protokolliga.
Opentracker
Järgnevas tekstis vaadeldakse üht lihtsat robustset kuid lihtsalt seadistatavat ning enamusel juhtudel täiesti piisavat opentrackeri nimelist serverit mis kasutab libowfat'i on levinud mitmetes maailma suurimates trackerites nt The Pirate Bay, töötab kiirelt ja vajab lihtsalt POSIX ühilduvat OSi.http://erdgeist.org/arts/software/opentracker/ paigaldada saab seda enamuses levinud opsüsteemides selle enda vahenditega nt apt-get, emerge või pkg_add. Kirjutamise ajal on kasutatud kõigis näidetes on kasutatud versiooni opentracker-0.2009.06.27. Antud tarkvara on mõeldud peamiselt avatud trackerite loomiseks ja kinniste passkeydega süsteemide jaoks tuleb vaadata pigem teisi programme.
Kogu trackeri häälestus toimetatakse läbi opentrackeri seadistusfaili nimega opentracker.conf mis paigaldatakse installimisel operatsioonisüsteemi etc alla opentracker nimelisse kausta. Sealt saab kasutaja häälestada mitmeid lisavigureid näiteks white ja blackliste ning nende asukohti (korraga saab vaid üht kasutada neist), statistika, aadress millel opentracker kuulab jms kuni näiteks teiste trackeritega info syncimisteni välja. Tasub tähelepanu seejuures pöörata ,et kõiki parameetreid saab proovida ning ette sööta ka käsurealt
Tarkvara on kusjuures täiesti kasutatav vaikimisi seadistusfailiga nign peale paigaldamist Nt saame seda testimise eesmärgiga peas igas os'is startida kiirelt käsuga
opentracker -i 127.0.0.1 -P 6969 -p 6969
Peale startimise näeb programmi koheselt kuulamas udp ja tcp pordil
nobody opentracke 47997 4 tcp4 *:6969 *:* nobody opentracke 47997 6 udp4 *:6969 *:*
See tähendab ,et meie tracker on kenasti kasutatav
Seejärel avame testimiseks enda torrenti kliendi, võtame sealt new torrent, näitame faili või kausta mida soovime jagada inimestega. Lülitame sisse ,et tahame kohe seedida ning vajadusel ,et torrent privaatne ehk DHT pole lubatud ja lisame trackeri aadressi mis on meil http://torrent.zoo.edu.ee:6969/announce Ning salvestame torrenti failisüsteemi nt nimega testimisetorrent.torrent
Nüüd võime saata selle torrenti faili edasi inimestega kellega siis soovisime jagada saates seda edasi näiteks kasvõi epostiga.
Nb, vahest on tarvilik kui ei hakka seedima loodud torrentit seda eelnevalt stopida startida
Kui torrenti fail tuleb suurte failide puhul liiga mahukas nt megades tasub muuta piece size't. Näiteks utorrent toetab 4M ja KTorrent isegi 8'sat.
Statistikat näeb opentrackeril lihtsas avades urli http://torrent.zoo.edu.ee:6969/stats
2 2 opentracker serving 1 torrents opentracker
Või keerulisemal juhul xml formaadis nt satistikate koostamiseks stats?mode=everything
Käsurealt torrenti faili tegemiseks on samuti nii debiani, bsd jms os'ide pakihalduses olemas tarkvara nimega createtorrent mille kasutamiseks tuleb näiteks anda käsk createtorrent -a tracker jagatav fail torrenti nimi. Näiteks
createtorrent -a http://torrent.zoo.edu.ee:6969/announce fail testimise.torrent
Juhul kui paketihaldus ei sisalda opentrackerit või on seal liig vana versioon on sourcest paigaldamine lihtne, tuleb vaid anda käsud
cvs -d :pserver:cvs@cvs.fefe.de:/cvs -z9 co libowfat cvs -d:pserver:anoncvs@cvs.erdgeist.org:/home/cvsroot co opentracker cd libowfat/ make make install cd .. cd opentracker/ make
Keerukamad kasutusjuhused, krüpteeringud, clustrid, privaatsed failid jms
blacklistid
TODO
Väike torrenti sõnastik
- Torrent = de tsenraliseeritud võrk, loodud kindlaks otstarbeks milleks p2p põhimõttel kasutajate vahel failide jagamine üle interneti.
- .torrent file = Väike kontrollfail mis sisaldab endas nimekirja failidest ja kõigist tükkidest milledeks fail jagatud (chunks) ja nende kontrollsummasid SHA1 hashing algoritmis ja muud infot nt trackeri url mis vajalikud failide jagamiseks klientide vahel
- Swarm = Hulk kasutajaid (peers) kes ühendunud ja jagavad torrentifaili
- Peer = Iga kasutaja kes kasutades bit-torrent klienti jagab mõnd faili
- Seed = Uploadimine teistele kasutajatele
- Leech = Downloadimine
- Client = programm millega kasutaja tegeleb torrentite leechimise ja seedimisega
- Tracker = Jälitus server mis hoiab kontrolli selle üle kellel on täiskujul fail jagamisel ning kellel veel pole. Peale andmebaasi pidamise ta muidu ise ei tegele ei uploadi ega downloadiga
- Chunk = Iga jagamisele minev fail on jaotatud tükkideks. Tüki suurus on 256K kuni 8M sõltuvalt mis on määratud selleks .torrent faili loomisel, nende tükkide infot säilitatakse torrent failis
- Error-correction = Igast tükist tekitatakse peale allatõmbamist kontrollsumma, kui see ei klapi torrentifailis olevaga siis tükk kustutatakse ja tõmmatakse uuesti.
Lingid
http://valadilene.org/2009/06/24/how-to-create-a-torrent-tracker-with-php-and-xbtt-part-1/
http://egopoly.com/2008/05/22/how-to-set-up-a-private-bittorrent-tracker/
http://ashughes.com/?q=node/85 opentracker ja torrent /usr/ports/net/opentracker
http://morehawes.co.uk/a-beginners-guide-to-bittorrent kuidas torrent töötab
http://torrentfreak.com/the-pirate-bay-tracker-shuts-down-for-good-091117/ tracker ja magnet