Erinevus lehekülje "Torrent" redaktsioonide vahel

Allikas: Kuutõrvaja
(Opentracker)
(Bnbt tracker)
 
(ei näidata 2 kasutaja 103 vahepealset redaktsiooni)
1. rida: 1. rida:
 
===Sisejuhatus===
 
===Sisejuhatus===
  
Torrentit http://en.wikipedia.org/wiki/BitTorrent_(protocol) (ehk täpsemalt bittorrentit mis ametlikuks nimeks) peetakse seejuures muidugi ka põhjusega peamiselt seotud olevat ebaseaduslike
+
Torrent'it http://en.wikipedia.org/wiki/BitTorrent_(protocol) (ehk täpsemalt bittorrent'it, mis protokolli ametlikuks nimeks) seostatakse enamasti ebaseaduslike ja autoriõigusteta materjalide levitamises. Tegelikult on torrent mõeldud kõiksuguse materjali mugavaks levitamiseks (nagut iso tõmmitsad, vabavaralised materjalid jms.), mida teeb ka veebiserver Apache. Tegemist on võimsa ja pidevalt areneva ning täieneva protokolliga.
autoriõigusega kaitstud materjalide levitamisega. Kuid üldiselt on torrent mõeldud
 
nagu ka näiteks apache igasuguse materjali mugavaks levitamiseks. Tegemist on ühe võimsa p2p lahendusega
 
  
Näiteks tekkis juhus kui oli vaja tuttavaga vahetada suuri andmehulki, serverisse ülespanekuks
+
Võib tekkida juhus kui on vaja arvutite vahel vahetada suuri andmehulki, samas tsentraalses serveris  aga kettaruumi ja võrguressurssi napib. Klient arvutitesse mingi teenuse (näiteks FTP, Apache) installeerimine on paraku ebapraktiline ja tülikas.  
nappis ruumi, oma arvutitesse aga mingeid servereid teha tülikas ning keeruline pooleli jäävat
 
jagamist uuesti startida kui see katkenud mis aga torrenti puhul arvestatud. Samuti on lihtsam
 
jagada aeglaste ühenduste taga mitmetele inimestele ühte faili korraga.
 
  
Torrent kasutab klient - server arhidektuuri ehk siis torrenti jagamine koosneb kahest osast
+
Torrent'i üheks suurimaks eeliseks on see, et andmete allatõmbamise hetkel jagab ta seda ka teiste klientidega, kiirendades sedasi klient-arvutites allalaadimist ning hajutades sujuvamalt võrgukoormust.  
tracker kui server ning siis mingi klient nt utorrent windowsis http://www.utorrent.com/ ja ktorrent http://ktorrent.org linuxis/freebsd's. Kokkuvõtteks on torrenti eeliseks see ,et see võimaldab paljudel kasutajatel üheaegselt sama faili tõmmata jagades samal ajal allatõmmatud tükke failist ka omavahel kiirendades nii tugevalt faili jagamist paljude kasutajate vahel ning hajutades ühtlasi sujuvamalt võrgukoormust mööda internetti laiali. Seda tööpõhimõtet iseloomustab allolev skeem
 
  
 +
Torrent kasutab klient<->server arhidektuuri. Jagamine koosneb kahest osast:
 +
tracker kui server ning klient nt. utorrent windowsis (http://www.utorrent.com/) ja ktorrent (http://ktorrent.org Linuxis/FreeBSD's).  Failide vahetamiseks tekitatakse klientprogrammiga .torrent fail, mis sisaldab kohalikus failisüsteemis olevate failide infot, mida soovitakse jagada ning tracker'i infot, läbi mille faile jagatakse. Peale .torrent faili laadimist klientprogrammi, teatatakse trackerile et fail on jagamiseks valmis. Kliendid, kes laevad oma arvutisse .torrent faili ning selle avavad, saavad trackeri käest infot, kellelt võimalik faili alla laadida. Kõik jagatavad failid lammutatakse nö. tükkideks (chunk), mida tõmbajate vahel vahetatakse.
  
Failide vahetamine toimib selliselt ,et torrenti kliendis nt utorrentis tekitatakse torrenti fail
+
Kirjeldatud tööpõhimõtet iseloomustab ehk kõige paremini allolev skeem.
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
 
  
[[Pilt:Tor01.jpg]]
+
[[Pilt:Torrent.png]]
  
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.
+
1. Kasutaja C loob torrent faili video.iso alusel ja seob selle trackeriga torrent.zoo.tartu.ee.
 +
seejärel saadab ta torrent faili kahele oma sõbrale B ja A.
 +
 
 +
2. B ja A laevad torrent faili oma torrenti klienti ning alustavad selle tõmbamist.
 +
Trackeri kaudu vahetatavad kõigi kolme osapoole kliendid seejuures infot
 +
selle kohta mis tükid on kõigil olemas ning lisaks C'lt tõmbamisele jagavad
 +
A ja B klientprogrammid ka omavahel neid tükke mida teisel poolel pole veel hangitud (näiteks
 +
on B ja C võrguühendus kiirem kui A'l ning seetõttu suudab B hankida faili kiiremini).
 +
 
 +
3. B ja A on lõpetanud tõmbamise ja fail on neil tervikuna olemas. Ilmub välja
 +
kasutaja D kes saab nüüd tõmmata neilt kõigilt kolmelt ja märksa suurema kiirusega.
 +
Tõmbamine ei katke samuti kui näiteks faili algselt üles laadinud kasutaja C otsustab oma arvuti välja lülitada.
  
 
===Opentracker===
 
===Opentracker===
  
[[Pilt:Opentracker.png]]
+
Järgnevas tekstis vaadeldakse üht lihtsat robustset ja kergelt seadistatavat trackerit. Server kasutab libowfat'i ning vajab tööks suvalist POSIX ühilduvat OSi. Seda trackerit kasutab ka The Pirate Bay.
 +
 
 +
Tekst on kirjutatud opentracker-0.2009.06.27 kohta, uuematel versioonide seadistuses võib esineda pisierinevusi. Olgu kohe ka öeldud, et antud tarkvara on mõeldud peamiselt avatud trackerite loomiseks, mistõttu kinniste passkeydega (võtmetega) süsteemide jaoks tuleb uurida pigem teisi tarkvarasid.
  
                      ___
+
Kogu trackeri häälestus toimetatakse läbi opentrackeri seadistusfaili, nimega opentracker.conf,
                      |  | 
+
mis paigaldatakse installeerimisel operatsioonisüsteemi /etc/opentracker nimelisse kausta. Häälestusvõimalusi on palju: white ja blacklist ning nende asukoht (korraga saab vaid üht kasutada neist), statistika, opentracker'i port, teiste trackeritega syncimine jms. Muide, kõiki parameetreid saab enne seadistusfaili kirjutamist proovida ka käsurealt.
                      |___| tracker                 
+
 
                        '''|'''                           
+
'''Trackeri tarkvara seadistamine'''
              '''|--------|--------|'''                           
 
              '''|        |        |
 
              |        |        |
 
              |      _|_      |'''
 
              |      |38%|A    |
 
              |      |___|      |
 
              |      /  \      |
 
              |    /    \    |
 
              |    /      \    |      Swarm
 
              |  /        \  |
 
              |  /          \  |
 
              | /            \ |
 
              |/              \|
 
      _|_ B            _\_ C
 
    |67%|_____________|100|
 
    |___|            |_%_|
 
 
käesolevas 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
+
Tarkvara on peale paigaldamist kasutatav vaikimisi seadistusfailiga.
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
+
Serveri saame käivitada käsuga  
Nt saame seda testimise eesmärgiga peas igas os'is startida kiirelt käsuga  
 
  
  opentracker -i 127.0.0.1 -P 6969 -p 6969
+
  # opentracker -i 127.0.0.1 -P 6969 -p 6969
  
Peale startimise näeb programmi koheselt kuulamas udp ja tcp pordil
+
Peale startimise näeb programmi kuulamas udp ja tcp pordil
  
 
  nobody  opentracke 47997 4  tcp4  *:6969                *:*
 
  nobody  opentracke 47997 4  tcp4  *:6969                *:*
 
  nobody  opentracke 47997 6  udp4  *:6969                *:*
 
  nobody  opentracke 47997 6  udp4  *:6969                *:*
  
See tähendab ,et meie tracker on kenasti kasutatav
+
Mis tähendab, et meie tracker on tööks valmis ja kuulab näiteserveris nimega torrent.zoo.edu.ee nii TCP kui UDP pordil numbriga 6969
  
Seejärel avame testimiseks enda torrenti kliendi, võtame sealt new torrent, näitame
+
'''Internetis jagamisele minevast failist/failidest torrent'i faili tekitamine'''
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
+
Avame testimiseks enda torrenti kliendi ja valime '''new torrent'''. Valime faili või kausta, mida soovime jagada. Lülitame sisse valiku, et tahame koheselt ka seda jagada (seedida). Lisame trackeri aadressi, mis on antudjuhul '''http://torrent.zoo.edu.ee:6969/announce''' ning salvestame torrentifaili kettale nimega '''test.torrent'''.
epostiga.
 
  
Nb, vahest on tarvilik kui ei hakka seedima loodud torrentit seda eelnevalt stopida startida
+
Nende toimingute peale võttis torrenti klient faili või failid. Tükeldas need mõtteliselt 256Kb (see vaikesuurus võib torrenti klienditi erineda) suurusteks juppideks, genereeris igale jupile oma kontrollsumma ning pani selle kõik kirja faili test.torrent koos trackeri aadressi, failinime jms vajalikuga.
  
Kui torrenti fail tuleb suurte failide puhul liiga mahukas nt megades tasub muuta piece size't. Näiteks
+
Üks tavaline de-bencoded torrent faili sisu mis genereeritud
utorrent toetab 4M ja KTorrent isegi 8'sat.
+
Debiani ISO faili alusel.
  
Statistikat näeb opentrackeril lihtsas avades urli http://torrent.zoo.edu.ee:6969/stats
+
{'announce': 'http://bttracker.debian.org:6969/announce'
 +
  'info': {'name': 'debian-503-amd64-CD-1.iso',
 +
          'piece length': 262144,
 +
          'length': 678301696,
 +
          'pieces': '841ae846bc5b6d7bd6e9aa3dd9e551559c82abc1 ...  d14f1631d776008f83772ee170c42411618190a4'
 +
          }
 +
}
 +
 
 +
* announce rida sisaldab trackeri aadressi
 +
* info sisaldab faili nime
 +
* piece lengt kui suurteks mõttelisteks osadeks fail jaotatakse (262144 baiti ehk 256Kb)
 +
* lenght näitab fili kogusuurust baitides (678301696 baiti ehk 647Mb)
 +
* pieces rida sisaldab kõikide tükkide kontrollsummat, see rida on tõenäoliselt
 +
kõige mahukam, käesoleval juhul peab ta sisaldama üle 2500 kontrollsumma.
 +
 
 +
Seejärel võime saata test.torrent faili neile, kellega soovime andmeid jagada. Torrent faili suurus on üldjuhtudel mõnikümmnest kilobaidist kuni paaro megani. Faili suurus oleneb jagatavate failide hulgast ning suurusest, mõnekümne gigabaidi puhul võib suurus kasvada megabaitideni, kuna .torrent faili peavad ära mahtuma kõik kontrollsummad. Väga suurte jagatavate failide puhul on mõistlik torrenti loomisel määrata piece size'i, mis näitab kui suurteks tükkideks fail mõtteliselt jagatakse, vaikeväärtusest suuremaks, et kontrollsummasid oleks vähem. uTorrent toetab 4MB ja KTorrent isegi 8MB suurusi tükke.
 +
 
 +
Juhul kui klientprogramm ei hakka mingil põhjusel seed'ima (jagama), siis tuleks torrent peatada ja uuesti käivitada (stop & start).
 +
 
 +
Opentracker'i statistikat näeb url'il http://torrent.zoo.edu.ee:6969/stats
  
 
  2
 
  2
89. rida: 86. rida:
 
  opentracker
 
  opentracker
  
Või keerulisemal juhul xml formaadis nt satistikate koostamiseks stats?mode=everything
+
XML formaadis väljunid kuvamiseks http://torrent.zoo.edu.ee:6969/stats?mode=everything
 +
 
 +
Käsurealt torrenti faili tegemiseks Linuxi ja BSD OS'ide pakihalduses
 +
tarkvara nimega createtorrent, mille kasutamiseks tuleb anda käsk
 +
createtorrent -a <tracker> <jagatav fail> <torrenti nimi>.
 +
 
 +
Näiteks:
 +
 
 +
$ createtorrent -a http://torrent.zoo.edu.ee:6969/announce fail.txt test.torrent
 +
 
 +
===bnbt klient===
 +
 
 +
Btpd is a utility for sharing files over the BitTorrent network protocol.
 +
 
 +
Start btpd with all options set to their default values
 +
$ btpd
 +
Start btpd as above, but with torrent data in the directory /var/torrents
 +
$ btpd -d /var/torrents
 +
Start btpd and make it listen on port 12345, limit outgoing bandwidth to 200kB/s, limit the number of peers to 40 and not start any torrents that were active the last time btpd was shut down
 +
$ btpd -p 12345 --bw-out 200 --max-peers 40 --empty-start
 +
 
 +
Rohkem infot https://github.com/btpd/btpd/wiki/
  
Käsurealt torrenti faili tegemiseks on samuti nii debiani, bsd jms os'ide pakihalduses
+
https://wiki.archlinux.org/index.php/Btpd
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
+
===Bnbt tracker===
  
Juhul kui paketihaldus ei sisalda opentrackerit või on seal liig vana versioon on sourcest paigaldamine lihtne, tuleb vaid anda käsud
+
freebsds asub nt /usr/ports/net-p2p/bnbt/
  
cvs -d :pserver:cvs@cvs.fefe.de:/cvs -z9 co libowfat
+
In order to run bnbt, add the following lines to /etc/rc.conf:
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
+
  bnbt_enable="YES"
  
===Väike torrenti sõnastik===
+
etc/bnbt
 +
etc/bnbt/bnbt.cfg
 +
etc/bnbt/users.bnbt
 +
etc/bnbt/dstate.bnbt
 +
etc/bnbt/tags.bnbt
 +
share/doc/bnbt
 +
share/doc/bnbt/footer.html
 +
share/doc/bnbt/header.html
  
*Torrent = de tsenraliseeritud võrk, loodud kindlaks otstarbeks milleks p2p põhimõttel kasutajate vahel failide jagamine üle interneti.
+
You can change the header.html file in your tracker's folder to add customized content to your tracker here. You can even change the header.html file while your tracker is running!
*.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.
 
  
blacklistid
+
Konfis
 +
 
 +
bnbt_static_footer = /usr/local/etc/bnbt/footer.html
 +
bnbt_static_header = /usr/local/etc/bnbt/header.html
 +
 
 +
Ja, et uploadida oleks võimalik ka upload kaust
 +
 
 +
bnbt_upload_dir = /usr/local/etc/bnbt/files/
 +
 
 +
Then start the server with /usr/local/etc/rc.d/bnbt.sh start
 +
or reboot.
 +
 
 +
http://zoo.tartu.ee:6969/users.html
 +
 
 +
http://bnbteasytracker.sourceforge.net/documentation.php
 +
 
 +
===Käsurea torrenti kliendi Rtorrenti kasutamine===
 +
 
 +
Esimese sammuna tuleb opsüsteemi vahenditega paigaldada rtorrent tarkvara
 +
 
 +
Seejärel tuleb tekitada kasutaja (selle kelle õigustes edaspidi hakkame rtorrentit kasutama) ja kodukataloogi edaspidiseks info hoidmiseks vajalikud kaustad nimedega: '''muutuv, muutuv/torr, muutuv/torr_session ja torrporr/'''
 +
 
 +
Lõpuks tuleb tekitada kasutaja kodukataloogi fail '''.rtorrent.rc''' kahe reaga:
 +
 
 +
session = '''muutuv/torr_session'''
 +
schedule = watch_directory_2,10,10,"load_start='''muutuv/torr/*.torrent''',d.set_directory='''torrporr'''"
 +
 
 +
Esimene rida tähendab, et ühenduste info hoitakse kaustas kasutaja/muutuv/torr_session
 +
Teine, et rtorrent jälgib pidevalt kataloomas kasutaja/muutuv/torr asuvaid torrenti faile ning lisab koheselt iga lisandunud uue torrenti tõmbamise - uploadimise nimistusse. Lisaks sellele määratakse antud real paika ka kataloog kuhu kõik allalaetud torrenti failid paigaldatakse, milleks antud näites kasutaja/torrporr/.
 +
 
 +
Lisaks võiks lisada sinna seadistusfaili read
 +
 
 +
port_range = 49164-49164
 +
port_random = no
 +
 
 +
Rtorrenti käivitamiseks tuleb anda käsk
 +
 
 +
$ rtorrent
 +
 
 +
Rtorrenti tasuks üldiselt käivitada taustal kasutades selles screen tarkvara. Soovides, et rtorrent hakkaks taustal tööle juba kohe reboodil võib lisada kasutaja croni rea
 +
 
 +
@reboot screen -d -m /usr/local/bin/rtorrent
 +
 
 +
Croni saab muuta käsuga:
 +
 
 +
$ crontab -u kasutaja -e
 +
 
 +
keerkamaid kasutusnäiteid (veebihaldusliideseid jms) leiab tarkvara kodulehelt http://libtorrent.rakshasa.no/
 +
 
 +
===Keerukamad kasutusjuhused===
 +
 
 +
Mustad nimekirjad, krüpteerimine, klastrid ja privaatsed failid.
 +
 
 +
TODO
 +
 
 +
===Väike terminite sõnastik===
 +
 +
*.torrent file = Väike kontrollfail, mis sisaldab endas nimekirja failidest ja kõigist tükkidest milledeks fail jagatud (chunks) ning nende kontrollsummasid SHA1 hashing algoritmis koos muu infoga.
 +
*Swarm = Hulk kasutajaid (peers) kes omavahel ühendatud ning jagavad kindlat torrenti faili
 +
*Peer = Kasutaja, kes kasutades bit-torrent klienti jagab mõnd faili
 +
*Seed = Uploader e. üleslaadija, kellel terviklik(ud) fail(id) olemas ja jagab seda teistele
 +
*Leech = Downloader e. allatõmbaja
 +
*Client = programm, mis laeb torrent faili nii alla kui üles
 +
*Tracker = server, mis ühendab omavahel seed'id ja peer'id. Tegeleb ainult andmebaasi pidamisega ning ei  uploadi ega downloadi
 +
*Chunk  = Iga jagamisele minev fail on jaotatud tükkideks. Tüki suurus on 256K kuni 8M. sõltuvalt määrangust .torrent faili loomisel. Tükkide info talletatakse .torrent faili
 +
*Error-correction = Igast allalaetud tükist genereeritakse kontrollsumma, mida võrreldakse .torrent failis oleva summaga. Kui see ei klapi, siis tõmmatakse tükk uuesti alla.
  
 
===Lingid===
 
===Lingid===
133. rida: 206. rida:
  
 
http://morehawes.co.uk/a-beginners-guide-to-bittorrent kuidas torrent töötab
 
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/ Piratebay ja magnet
 +
 +
http://torrentfreak.com/download-torrentless-torrents-from-torrentz-with-firefox-091109/ tracker ja magnet
 +
 +
http://www.btiteam.org/ veebiportaal torrentite jagamiseks
 +
 +
http://libtorrent.rakshasa.no/ käsurea torrenti klient
 +
 +
http://maketecheasier.com/create-torrent-tracker-with-rivettracker/2010/03/02
 +
 +
http://sourceforge.net/projects/tbsource/ tbdev tracker
 +
 +
http://en.wikipedia.org/wiki/Torrent_file
 +
 +
http://wiki.theory.org/BitTorrentSpecification#Metainfo_File_Structure
 +
 +
http://phpbttrkplus.sourceforge.net/

Viimane redaktsioon: 9. august 2012, kell 12:38

Sisejuhatus

Torrent'it http://en.wikipedia.org/wiki/BitTorrent_(protocol) (ehk täpsemalt bittorrent'it, mis protokolli ametlikuks nimeks) seostatakse enamasti ebaseaduslike ja autoriõigusteta materjalide levitamises. Tegelikult on torrent mõeldud kõiksuguse materjali mugavaks levitamiseks (nagut iso tõmmitsad, vabavaralised materjalid jms.), mida teeb ka veebiserver Apache. Tegemist on võimsa ja pidevalt areneva ning täieneva protokolliga.

Võib tekkida juhus kui on vaja arvutite vahel vahetada suuri andmehulki, samas tsentraalses serveris aga kettaruumi ja võrguressurssi napib. Klient arvutitesse mingi teenuse (näiteks FTP, Apache) installeerimine on paraku ebapraktiline ja tülikas.

Torrent'i üheks suurimaks eeliseks on see, et andmete allatõmbamise hetkel jagab ta seda ka teiste klientidega, kiirendades sedasi klient-arvutites allalaadimist ning hajutades sujuvamalt võrgukoormust.

Torrent kasutab klient<->server arhidektuuri. Jagamine koosneb kahest osast: tracker kui server ning klient nt. utorrent windowsis (http://www.utorrent.com/) ja ktorrent (http://ktorrent.org Linuxis/FreeBSD's). Failide vahetamiseks tekitatakse klientprogrammiga .torrent fail, mis sisaldab kohalikus failisüsteemis olevate failide infot, mida soovitakse jagada ning tracker'i infot, läbi mille faile jagatakse. Peale .torrent faili laadimist klientprogrammi, teatatakse trackerile et fail on jagamiseks valmis. Kliendid, kes laevad oma arvutisse .torrent faili ning selle avavad, saavad trackeri käest infot, kellelt võimalik faili alla laadida. Kõik jagatavad failid lammutatakse nö. tükkideks (chunk), mida tõmbajate vahel vahetatakse.

Kirjeldatud tööpõhimõtet iseloomustab ehk kõige paremini allolev skeem.

Torrent.png

1. Kasutaja C loob torrent faili video.iso alusel ja seob selle trackeriga torrent.zoo.tartu.ee. seejärel saadab ta torrent faili kahele oma sõbrale B ja A.

2. B ja A laevad torrent faili oma torrenti klienti ning alustavad selle tõmbamist. Trackeri kaudu vahetatavad kõigi kolme osapoole kliendid seejuures infot selle kohta mis tükid on kõigil olemas ning lisaks C'lt tõmbamisele jagavad A ja B klientprogrammid ka omavahel neid tükke mida teisel poolel pole veel hangitud (näiteks on B ja C võrguühendus kiirem kui A'l ning seetõttu suudab B hankida faili kiiremini).

3. B ja A on lõpetanud tõmbamise ja fail on neil tervikuna olemas. Ilmub välja kasutaja D kes saab nüüd tõmmata neilt kõigilt kolmelt ja märksa suurema kiirusega. Tõmbamine ei katke samuti kui näiteks faili algselt üles laadinud kasutaja C otsustab oma arvuti välja lülitada.

Opentracker

Järgnevas tekstis vaadeldakse üht lihtsat robustset ja kergelt seadistatavat trackerit. Server kasutab libowfat'i ning vajab tööks suvalist POSIX ühilduvat OSi. Seda trackerit kasutab ka The Pirate Bay.

Tekst on kirjutatud opentracker-0.2009.06.27 kohta, uuematel versioonide seadistuses võib esineda pisierinevusi. Olgu kohe ka öeldud, et antud tarkvara on mõeldud peamiselt avatud trackerite loomiseks, mistõttu kinniste passkeydega (võtmetega) süsteemide jaoks tuleb uurida pigem teisi tarkvarasid.

Kogu trackeri häälestus toimetatakse läbi opentrackeri seadistusfaili, nimega opentracker.conf, mis paigaldatakse installeerimisel operatsioonisüsteemi /etc/opentracker nimelisse kausta. Häälestusvõimalusi on palju: white ja blacklist ning nende asukoht (korraga saab vaid üht kasutada neist), statistika, opentracker'i port, teiste trackeritega syncimine jms. Muide, kõiki parameetreid saab enne seadistusfaili kirjutamist proovida ka käsurealt.

Trackeri tarkvara seadistamine

Tarkvara on peale paigaldamist kasutatav vaikimisi seadistusfailiga.

Serveri saame käivitada käsuga

# opentracker -i 127.0.0.1 -P 6969 -p 6969

Peale startimise näeb programmi kuulamas udp ja tcp pordil

nobody   opentracke 47997 4  tcp4   *:6969                *:*
nobody   opentracke 47997 6  udp4   *:6969                *:*

Mis tähendab, et meie tracker on tööks valmis ja kuulab näiteserveris nimega torrent.zoo.edu.ee nii TCP kui UDP pordil numbriga 6969

Internetis jagamisele minevast failist/failidest torrent'i faili tekitamine

Avame testimiseks enda torrenti kliendi ja valime new torrent. Valime faili või kausta, mida soovime jagada. Lülitame sisse valiku, et tahame koheselt ka seda jagada (seedida). Lisame trackeri aadressi, mis on antudjuhul http://torrent.zoo.edu.ee:6969/announce ning salvestame torrentifaili kettale nimega test.torrent.

Nende toimingute peale võttis torrenti klient faili või failid. Tükeldas need mõtteliselt 256Kb (see vaikesuurus võib torrenti klienditi erineda) suurusteks juppideks, genereeris igale jupile oma kontrollsumma ning pani selle kõik kirja faili test.torrent koos trackeri aadressi, failinime jms vajalikuga.

Üks tavaline de-bencoded torrent faili sisu mis genereeritud Debiani ISO faili alusel.

{'announce': 'http://bttracker.debian.org:6969/announce'
 'info': {'name': 'debian-503-amd64-CD-1.iso',
          'piece length': 262144,
          'length': 678301696,
          'pieces': '841ae846bc5b6d7bd6e9aa3dd9e551559c82abc1 ...  d14f1631d776008f83772ee170c42411618190a4' 
         }
}
  • announce rida sisaldab trackeri aadressi
  • info sisaldab faili nime
  • piece lengt kui suurteks mõttelisteks osadeks fail jaotatakse (262144 baiti ehk 256Kb)
  • lenght näitab fili kogusuurust baitides (678301696 baiti ehk 647Mb)
  • pieces rida sisaldab kõikide tükkide kontrollsummat, see rida on tõenäoliselt

kõige mahukam, käesoleval juhul peab ta sisaldama üle 2500 kontrollsumma.

Seejärel võime saata test.torrent faili neile, kellega soovime andmeid jagada. Torrent faili suurus on üldjuhtudel mõnikümmnest kilobaidist kuni paaro megani. Faili suurus oleneb jagatavate failide hulgast ning suurusest, mõnekümne gigabaidi puhul võib suurus kasvada megabaitideni, kuna .torrent faili peavad ära mahtuma kõik kontrollsummad. Väga suurte jagatavate failide puhul on mõistlik torrenti loomisel määrata piece size'i, mis näitab kui suurteks tükkideks fail mõtteliselt jagatakse, vaikeväärtusest suuremaks, et kontrollsummasid oleks vähem. uTorrent toetab 4MB ja KTorrent isegi 8MB suurusi tükke.

Juhul kui klientprogramm ei hakka mingil põhjusel seed'ima (jagama), siis tuleks torrent peatada ja uuesti käivitada (stop & start).

Opentracker'i statistikat näeb url'il http://torrent.zoo.edu.ee:6969/stats

2
2
opentracker serving 1 torrents
opentracker

XML formaadis väljunid kuvamiseks http://torrent.zoo.edu.ee:6969/stats?mode=everything

Käsurealt torrenti faili tegemiseks Linuxi ja BSD OS'ide pakihalduses tarkvara nimega createtorrent, mille kasutamiseks tuleb anda käsk createtorrent -a <tracker> <jagatav fail> <torrenti nimi>.

Näiteks:

$ createtorrent -a http://torrent.zoo.edu.ee:6969/announce fail.txt test.torrent

bnbt klient

Btpd is a utility for sharing files over the BitTorrent network protocol.

Start btpd with all options set to their default values

$ btpd

Start btpd as above, but with torrent data in the directory /var/torrents

$ btpd -d /var/torrents

Start btpd and make it listen on port 12345, limit outgoing bandwidth to 200kB/s, limit the number of peers to 40 and not start any torrents that were active the last time btpd was shut down

$ btpd -p 12345 --bw-out 200 --max-peers 40 --empty-start

Rohkem infot https://github.com/btpd/btpd/wiki/

https://wiki.archlinux.org/index.php/Btpd

Bnbt tracker

freebsds asub nt /usr/ports/net-p2p/bnbt/

In order to run bnbt, add the following lines to /etc/rc.conf:

 bnbt_enable="YES"
etc/bnbt
etc/bnbt/bnbt.cfg
etc/bnbt/users.bnbt
etc/bnbt/dstate.bnbt
etc/bnbt/tags.bnbt
share/doc/bnbt
share/doc/bnbt/footer.html
share/doc/bnbt/header.html

You can change the header.html file in your tracker's folder to add customized content to your tracker here. You can even change the header.html file while your tracker is running!

Konfis

bnbt_static_footer = /usr/local/etc/bnbt/footer.html
bnbt_static_header = /usr/local/etc/bnbt/header.html

Ja, et uploadida oleks võimalik ka upload kaust

bnbt_upload_dir = /usr/local/etc/bnbt/files/

Then start the server with /usr/local/etc/rc.d/bnbt.sh start or reboot.

http://zoo.tartu.ee:6969/users.html

http://bnbteasytracker.sourceforge.net/documentation.php

Käsurea torrenti kliendi Rtorrenti kasutamine

Esimese sammuna tuleb opsüsteemi vahenditega paigaldada rtorrent tarkvara

Seejärel tuleb tekitada kasutaja (selle kelle õigustes edaspidi hakkame rtorrentit kasutama) ja kodukataloogi edaspidiseks info hoidmiseks vajalikud kaustad nimedega: muutuv, muutuv/torr, muutuv/torr_session ja torrporr/

Lõpuks tuleb tekitada kasutaja kodukataloogi fail .rtorrent.rc kahe reaga:

session = muutuv/torr_session
schedule = watch_directory_2,10,10,"load_start=muutuv/torr/*.torrent,d.set_directory=torrporr"

Esimene rida tähendab, et ühenduste info hoitakse kaustas kasutaja/muutuv/torr_session Teine, et rtorrent jälgib pidevalt kataloomas kasutaja/muutuv/torr asuvaid torrenti faile ning lisab koheselt iga lisandunud uue torrenti tõmbamise - uploadimise nimistusse. Lisaks sellele määratakse antud real paika ka kataloog kuhu kõik allalaetud torrenti failid paigaldatakse, milleks antud näites kasutaja/torrporr/.

Lisaks võiks lisada sinna seadistusfaili read

port_range = 49164-49164
port_random = no

Rtorrenti käivitamiseks tuleb anda käsk

$ rtorrent

Rtorrenti tasuks üldiselt käivitada taustal kasutades selles screen tarkvara. Soovides, et rtorrent hakkaks taustal tööle juba kohe reboodil võib lisada kasutaja croni rea

@reboot screen -d -m /usr/local/bin/rtorrent

Croni saab muuta käsuga:

$ crontab -u kasutaja -e

keerkamaid kasutusnäiteid (veebihaldusliideseid jms) leiab tarkvara kodulehelt http://libtorrent.rakshasa.no/

Keerukamad kasutusjuhused

Mustad nimekirjad, krüpteerimine, klastrid ja privaatsed failid.

TODO

Väike terminite sõnastik

  • .torrent file = Väike kontrollfail, mis sisaldab endas nimekirja failidest ja kõigist tükkidest milledeks fail jagatud (chunks) ning nende kontrollsummasid SHA1 hashing algoritmis koos muu infoga.
  • Swarm = Hulk kasutajaid (peers) kes omavahel ühendatud ning jagavad kindlat torrenti faili
  • Peer = Kasutaja, kes kasutades bit-torrent klienti jagab mõnd faili
  • Seed = Uploader e. üleslaadija, kellel terviklik(ud) fail(id) olemas ja jagab seda teistele
  • Leech = Downloader e. allatõmbaja
  • Client = programm, mis laeb torrent faili nii alla kui üles
  • Tracker = server, mis ühendab omavahel seed'id ja peer'id. Tegeleb ainult andmebaasi pidamisega ning ei uploadi ega downloadi
  • Chunk = Iga jagamisele minev fail on jaotatud tükkideks. Tüki suurus on 256K kuni 8M. sõltuvalt määrangust .torrent faili loomisel. Tükkide info talletatakse .torrent faili
  • Error-correction = Igast allalaetud tükist genereeritakse kontrollsumma, mida võrreldakse .torrent failis oleva summaga. Kui see ei klapi, siis tõmmatakse tükk uuesti alla.

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/ Piratebay ja magnet

http://torrentfreak.com/download-torrentless-torrents-from-torrentz-with-firefox-091109/ tracker ja magnet

http://www.btiteam.org/ veebiportaal torrentite jagamiseks

http://libtorrent.rakshasa.no/ käsurea torrenti klient

http://maketecheasier.com/create-torrent-tracker-with-rivettracker/2010/03/02

http://sourceforge.net/projects/tbsource/ tbdev tracker

http://en.wikipedia.org/wiki/Torrent_file

http://wiki.theory.org/BitTorrentSpecification#Metainfo_File_Structure

http://phpbttrkplus.sourceforge.net/