BitTorrent je ime internetnega sodelovalnega protokola za izmenjavo datotek. Posebnost protokola je njegova uporabnost in primernost za prenos (izmenjavo) velikih datotek (prve prednosti se opazijo že pri datotekah večjih od 100 MB, protokol pa zasije v polni luči pri datotekah nad 2 GB).
Prenos podatkov pri protokolu BitTorrent poteka drugače kot pri običajnem prenosu datoteke iz (spletnega) strežnika. Pri klasičnem načinu je vsak, ki je datoteko ponujal javnosti, to imel v svojem spletnem strežniku. Odjemalci so morali vedeti njen naslov (URL), nato pa so lahko sprožili proces prenašanja, ki je datoteko v celoti prenesel iz omenjenega strežnika. Težava je nastala pri pasovni širini oziroma, če hočete, širini pipice, s katero je bil strežnik tega, ki je datoteko ponujal svetu, povezan v internet. Seveda so bile obremenjene tudi vse povezave na poti od strežnika do prvih večjih vozlišč … Pred leti, ko je ta način distribucije datotek po internetu veljal za standardnega, so se težave manifestirale pogosto – recimo ob objavi dostopnosti nove različice priljubljenega programskega paketa. Kar naenkrat je več tisoč uporabnikov začelo prenašati datoteko iz strežnika podjetja, njihova internetna linija se je seveda napolnila in prenosi so postajali čedalje počasnejši, če se niso zaradi zakasnitev kar prekinili.
BitTorrent deluje drastično drugače. Pomembno je vedeti, da datoteko, ki jo sprejemamo, hkrati tudi dajemo v uporabo drugim. Datoteka se na začetku razkosa v več majhnih delov, uporabnik pa prejema koščke datoteke iz več strežnikov oziroma od več uporabnikov, ki so jih že prenesli – hkrati. Uporabniki torej delno prevzamejo vlogo osrednjega strežnika, hkrati pa ostajajo odjemalci. Za ta način komunikacije se je že pred BitTorrentom uveljavil naziv P2P (peer-to-peer) oziroma poslovenjeno vsak z vsakim.
BitTorrent je postal med ljudstvom priljubljen predvsem zaradi hitrejšega prenosa, saj, kot opisano, podatke vseskozi prejemamo z različnih lokacij hkrati. To je smiselno, ker je večina internetnih povezav (xDSL, kabelski internet) asimetričnih. Hitrost sprejemanja podatkov je na njih nekajkrat večja od hitrosti oddajanja, zato polno hitrost svojih širokopasovnih povezav izkoristimo šele ob sprejemamo datoteke iz več strežnikov hkrati, brez zastojev in brez omejevanja hitrosti pošiljanja tistega na drugi strani.
Kaj JE P2P?
In kaj sploh je P2P? Izraz sam po sebi pomeni peer-to-peer oziroma označuje omrežje enakovrednih računalnikov, torej »enak z enakim« ali »vsak z vsakim«. Pred nekaj leti, ko je bil P2P še novost, je naš urednik Zoran Banovič zapisal tole, in ugotavljam, da še vedno v celoti drži: »Gre za zelo vabljiv in prav očarljiv koncept, ki omogoča uporabnikom, da z različnimi programi dobijo prek interneta dostop do vsebine, ki jo imajo na voljo drugi uporabniki. In ta vsebina je res raznovrstna, najpogosteje pa gre za glasbo, filme in programsko opremo. Nekateri P2P označujejo kot nekakšno elektronsko komuno, kjer vsak član daje na voljo drugim to, kar želi, drugi pa imajo na voljo vse, kar ponujajo preostali člani komune.«
BitTorrent je nastal leta 2002, njegov avtor pa je ameriški programer Bram Cohen. Zaradi izredne priljubljenosti je Cohen ustanovil podjetje BitTorrent Ltd., ki protokol in odjemalni program P2P, tudi imenovan BitTorrent, razvija še naprej, s ciljem ponuditi digitalni distribucijski kanal za ponudnike vsebin (filmski studii, internetna televizija, velike programske hiše …). To je pomembno omeniti zato, ker nekateri površno enačijo BitTorrent z nelegalnimi prenosi vsebin, kar seveda ne drži. Zgrešena analogija bi velela, da so fotokopirni stroji nekaj, kar velja prepovedati, saj omogočajo kopiranje avtorskih del.
Cohen je prvi odjemalec BitTorrent napisal v programskem jeziku Pyton, njegova izvorna koda pa je bila na voljo pod odprto licenco BitTorrent Open Source Licence, ki ne omejuje drugih avtorjev programske opreme za delo in vpeljavo protokola BitTorrent v svoje izdelke.
BitTorrent za prenose uporablja protokol TCP, a namerava zaradi velikega odstotka svetovnega internetnega prometa, ki je posledica prenosa datotek prek torrentov v tem letu 2009 preiti na UDP. Protokol TCP namreč vsebuje kontrolne informacije, ki skrbijo, da so paketki od pošiljatelja do prejemnika oddani v pravem zaporedju in brez manjkajočih delov. To prispeva dodaten promet (overhead) na sam prenos podatkov, obenem pa že sama ogromna količina torrentnega prometa povzroča težave ponudnikom internetnih povezav, saj so te preprosto vse bolj (pre)polne. S prehodom na UDP se bo stvar za ponudnike internetnih povezav spremenila, saj bittorrentni promet ne bo več povzročal takih težav. Promet v paketih UDP je namreč tipa »best effort delivery«, kar pomeni, da skozi omrežje ali pridejo ali pa ne. Če so linije prepolne in se UDP-paketki izgubijo ali pa so zavrženi, da dajo prednost TCP-prometu višje prioritete (IP-telefonija, VoIP in drug promet interaktivnega tipa), bo zdaj odgovornost odjemalca BitTorrent, da ponovno zahteva prenos določenega (izgubljenega paketka), s čimer ne bo obremenjena komunikacijska oprema internetnih ponudnikov, porabljeno pa bo tudi manj pasovne širine.
Me lahko dobijo?
Lahko bi se izgovarjali na zdaj »priljubljeno« recesijo, a dejstvo je, da je v večini primerov piratiziranje postalo preprostejše kot dostop do originalnih vsebin. In vprašanje je, v kakšni pravni nevarnosti smo, če uporabljamo BitTorrent? Ali je uporaba BitTorrenta anonimna? Če smo le sneli datoteko in je ne ponujamo trajno v prenos drugim, smo v precej manjši nevarnosti, kot če trajno opravljamo vlogo sejalca ali pa smo celo primarni vir.
Nevarnosti sta dve: prva je, da se vaš IP pojavi med sejalci v podatkih ki jih odjemalcu poda sledilnik (in ki ga lahko seveda sledijo nazaj do vas), druga pa, da vaš ponudnik internetne povezave prisluškuje prometu, iz česar lahko ugotovi, kaj in kako prenašate (in vam ali omeji hitrost prometa ali pa celo – v prihodnosti – kako drugače grozi). Prvi nevarnosti se da izogniti z uporabo dodatkov za anonimnost za odjemalcev torrentov (recimo TOR – navodila, kako to nastaviti za odjemalca Azureus najdete tule:
http://azureus.sourceforge.net/doc/AnonBT/Tor/howto_0.5.htm) oziroma uporabo prehodov (proxys). Drugi nevarnosti se da izogniti z vklopom šifriranja prenosov (tuneli, SSL), kar podpirajo praktično vsi novejši odjemalci. Kolikor nam je znano, v Sloveniji še ni bil uveden postopek proti fizični osebi zaradi prenašanja avtorskih materialov prek interneta, če ni bila sočasno ugotovljena tudi pridobitna dejavnost (pre)prodajanja tega naprej.
Posebnost protokola BitTorrent je tudi to, da sledilniki samo povežejo ponudnika in povpraševalca. S tem naj ne bi bili odgovorni za legalnost prenesenih datotek. A tudi tu se sodna praksa šele snuje in verjetno najodmevnejši primer švedskega spletišča The Pirate Bay (zabavno branje je korespondenca pisem med lastniki pravic in TPB-jem, ki ga najdete na http://thepiratebay.org/legal ) tudi še ni dobil epiloga. Po nekaterih interpretacijah avtorske zakonodaje naj bi bili namreč v prekršku tudi zaradi »spodbujanja« oz. »omogočanja« izvajanja nelegalnih prenosov, čeprav so še pred nekaj leti menili, da lastnikov sledilnikov ne bodo sodno preganjali, ker nimajo nič z dejanskim prenosom ilegalnih vsebin, niti teh v svojem strežniku ne gostijo.
BitTorrent je seveda postal tudi priljubljen protokol za nelegalno izmenjevanje avtorsko zaščitenih filmov, glasbe, tv serij, programske opreme in podobnega, a hkrati je tudi učinkovito sredstvo za legalno distribucijo uradno prodanih že zgoraj omenjenih datotek in vsebin, ki jo uporabljajo največji svetovni založniki in vrsta internetnih spletnih trgovin z večpredstavno vsebino.
BitTorrent se od svojih predhodnikov (glej okvir »Zgodovina P2P«) razlikuje po tem, da ne sloni na nikakršni infrastrukturi in sploh ne ponuja iskalnih mehanizmov. Ker je njegova infrastruktura kar internet sam, tudi nima ene točke ranljivosti. Seveda pa je treba za začetek prenosa poiskati lokatorsko datoteko tipa .torrent.
Datoteke tipa .torrent lahko poiščemo kar prek običajnih spletnih iskalnikov, vendar te datoteke ne vsebujejo vsebine ciljne datoteke, pač pa pot do tako imenovanega sledilnika (tracker) ter velikost in kontrolne podatke za vsak segment datoteke. Sledilnik je tisti, ki nadzira, kje neka datoteka v resnici je, tako da sledi uporabnikom (to je izvedeno tako, da odjemalci periodično preverjajo/pošiljajo svoje stanje sledilniku). Njegova naloga je, da vzdržuje seznam za vsak torrent in ga posreduje tistim, ki jih to zanima.
Ko uporabnik pošlje povpraševanje po objektu oz. datoteki, mu sledilnik odgovori z naslovi semenskih vozlišč (seed nodes/seeders), kjer so posamezni delci datoteke (ti so navadno velikosti 256 KB), zraven pa so tudi kontrolne informacije vsakega delca datoteke (hash), s katerimi se preverja istovetnost prenesenih podatkov in odpravlja napake med prenosom.
Metoda je zelo domiselna zato, ker omogoča izredno hiter prenos najbolj priljubljenih datotek. Ko uporabnik (leecher) sname paket, postane sam strežnik (peer) in daje ta paket na voljo drugim. To pomeni, da več ljudi ko snema datoteko, hitreje se ta prenaša. Ko se snamejo vsi paketi želene datoteke, se ta sestavi v celoto in uporabnik postane semensko vozlišče (seeder). Protokol je dovolj izpopolnjen, da izbira uporabnike z najhitrejšo povezavo za distribucijo najredkejših fragmentov in se s tem izogne ozkemu grlu.
Čeprav je slišati zapleteno, se to zdi samo zaradi novih izrazov, v resnici pa je zelo preprosto.
Protokol BitTorrent in sledilnik poskrbita za to, da si lahko uporabnik presname različne dele datotek tako od glavnega sejalca (tisti, ki ima celotno datoteko) kot od drugih uporabnikov, ki imajo na voljo tiste dele datotek, ki jih uporabnik še nima. Takoj ko se prenese zaključen del datoteke pri določenem uporabniku, obvesti sledilnik tudi druge uporabnike, da je ta del datoteke na voljo tudi njim. Tako lahko prenašalci datotek razmeroma hitro začnejo medsebojno izmenjavo tistih delov datotek, ki jih še nimajo, in tako razbremenijo glavnega sejalca.
Hitrost prenosa bo odvisna predvsem od tega, kako boste »sejali«. Več »semena« ko boste natrosili, večjo »žetev« oz. hitrejši prenos datotek lahko pričakujete. Če se prenos datoteke zaustavi, ker je npr. uporabnik, ki je v vlogi sejalca, zaprl program in prenehal sejati svojo datoteko, in ker tudi drugi prenašalci niso prenesli več podatkov od sejalca kot vi, boste morali počakati na novega sejalca popolnoma enake mape ali datoteke, če pa gre za starejše datoteke, se utegne zgoditi da naletite na edino BitTorrentovo težavo – da je datoteka v omrežju ostala nepopolna.
Zgodovina P2P
Prvo generacijo omrežij P2P je zaznamovalo centralizirano omrežje. Delovalo je tako, da se je uporabnik prijavil v strežnik, ki je vseboval informacije o vseh uporabnikih in njihovih datotekah, ki jih daje na voljo drugim uporabnikom. Ko je uporabnik sproži iskanje datoteke, ni preiskoval sezname datotek po vseh računalnikih v omrežju, ampak sezname vseh datotek vseh uporabnikov v centralnem strežniku. Rezultati iskanja so bili ime datoteke ter kontaktne informacije uporabnika, ki datoteko ima. Nadaljnja komunikacija je potekala neposredno med uporabnikoma (P2P). Tako je deloval legendarni Napster. In prav zato, ker Napster ni nudil neposrednega snemanja datotek, se je tožba proti njemu s strani glasbenih založb, vlekla tako dolgo. Čeprav je bil Napster začetnik na tem področju, pa ni bil slab. Nasprotno, koncept je še vedno najhitrejši in najpriročnejši, a kaj, ko je za prenos nelegalnih vsebin iz pravnih razlogov neuporaben. Napster je imel dodatno slabost. Omrežnim skrbnikom ga je bilo zelo preprosto utišati s preprostim požarnim zidom ali usmerjevalnikom, ki je sposoben pregledovati omrežni promet. Vse, kar so morali narediti, je, da so zaprli vrata, prek katerih je P2P prve generacije deloval. A kljub temu je Napster po nekaterih ocenah do leta 2001, ko so ga začasno ukinili, snelo več kot 28 milijonov uporabnikov. A Napster pravzaprav ni bil primer »čistega« omrežja P2P. Omrežje je za uspešno delovanje namreč potrebovalo osrednji strežnik, ki je vseboval informacije o tem, kaj kdo ima in na katerem naslovu je.
Še preden je tožnikom uspelo spravit Napster s sveta, je luč sveta že ugledal nov koncept. Ugotovitev, da koncept osrednjega strežnika ni prava, saj ga je lahko odkriti in blokirati je botrovala razvoju sistema, ki je bil prvi pravi P2P. Program se je imenoval Gnutella. In zakaj revolucija? Povezovanje med uporabniki načeloma ni težavno – dokler uporabnik ve za naslov drugega uporabnika in za ime datoteke pri njem. V omrežjih P2P je največja težava prav iskanje teh podatkov, zato Gnutella uporabi iskanje z metodo poplavljanja (flooding). Uporabnik pošlje povpraševanje drugim uporabnikom, ti pa ga posredujejo naprej, dokler se želena datoteka ne najde. Uporabnik, ki sproži iskanje, lahko določi, prek koliko drugih uporabnikov bo iskanje potekalo. Iskanje velikokrat poteka prek nekaj tisoč uporabnikov, kar je načeloma dobro, v praksi pa pomeni veliko zmanjšanje hitrosti prenosov glede na Napster. Kmalu so se pojavili kloni, kot sta LimeWire in Gnucleus. Gnutella je za P2P prenos uporabljala različna TCP-vrata, tudi standardna vrata 80 (splet), znala je izkoriščati tudi proxy prehode – zato jo je bilo veliko teže odkriti in blokirati. A tudi Gnutella je imela Ahilovo peto, in sicer skalabilnost. Ko je po ukinitvi Napsterja uporabnikov Gnutelle postalo preveč, je večina prometa v omrežju postalo poizvedovanje.
Razvoj P2P je pokazal, da je bil Napster dober, hiter, a prelahka tarča. Druga generacija je bila odlično skrita, a prepočasna in neskalabilna. Rešitev se je ponudila v hibridnem pristopu – in na trgu se je pojavil program, imenovan Kazaa. Koncept enakost P2P se je končal, in uvedena sta bila dva tipa uporabnikov, točneje, supervozlišče (super-node) in navadno vozlišče (ordinary peers ali samo peer). Supervozlišča postanejo tisti računalniki v omrežju, za katere se ugotovi, da imajo hitro povezavo v internet in večjo procesorsko moč. Te sistem postavi za nekakšne strežnike, podobne Napsterjevemu, ki skupaj z drugimi njim podobnimi, tvorijo ogrodje sistema, v katerega so priključeni običajni uporabniki (peers). Na zunaj med njimi ni razlik, saj supervozlišča niti ne vedo, da so, kar so. Določanje poteka samodejno in uporabniki razlike ne opazijo. Supervozlišča namreč nastajajo dinamično in sproti, ko se uporabnik prijavi v omrežje. Kazaa je deloval odlično, in kmalu je po ocenah strokovnjakov odgovarjal za skoraj polovico internetnega prometa. Hkrati je Kazaa uvedel koncept nadzorne vsote, ki je vsaki datoteki v omrežju dodelila nadzorno vsoto, ki pa ni bila odvisna od imena datoteke, ampak le od njene vsebine. Tako je sistem še vedno našel npr. določeno pesem, četudi jo je kak uporabnik preimenoval, in tako je ta v sistemu še vedno nastopala pod vedno istim imenom. Na zelo podobni osnovi kot Kazaa sta delovala tudi eDonkey oziroma še danes precej priljubljeni eMule.
A kralj hibridnih sistemov in tretje generacije protokolov P2P je vsekakor BitTorrent. Posebnost tretje generacije omrežij P2P je ta, da ne trpi »zastonjkarjev«, torej tistih, ki bi radi le snemali, svojih stvari pa ne bi dajali na voljo drugim. Kdor hoče hitro snemati, mora tudi drugim dati na voljo to, kar ima, sicer bodo prenosi izredno počasni.
Moj mikro, Marec 2009 | Jaka Mele |