недеља, 2. децембар 2007.

Šta je BitTorrent?

BitTorrent je naziv za P2P klijent, tip torrent datoteka i protokol za razmenu datoteka dizajniran tako da prepoznaje sadržaj za razmenu pomoću URL adrese. S tehničkog aspekta predstavlja unapređeni HTTP protokol sa mogućnošću ukrštenog prenosa datoteka između povezanih klijenata. Na ovaj način se postiže da peer koji je uploadovao datoteku drugim peerovima može da se isključi iz mreže, a da ostali i dalje međusobno razmenjuju tu istu datoteku, čak i ako je niko od njih nema u potpunosti preuzetu.

Osnovu funkcionisanja BitTorrenta predstavljaju Web server na kojem se nalazi statični torrent kontejner sa META podacima o torrentu, BitTorrent tracker, izvori (seederi) i klijenti koji istovremeno downloaduju i uploaduju (peerovi).

BitTorrent protokol deli datoteku na male delove (segmente), najčešće veličine 256 KB. Peerovi downloaduju nedostajuće segmente, a istovremeno uploaduju one segmente koji su u celosti preuzeti. Protokol je u stanju da samostalno izabere peer sa najkvalitetnijom vezom za traženi segment. BitTorrent klijenti prvo upućuju zahtev za segmentima koji su najmanje zastupljeni u swarmu, dok oni koji su najzastupljeniji bivaju zatraženi tek na kraju, a po kompletiranju klijent ugrađuje segment na unapred određeno mesto u budućoj datoteci. Veoma je bitno što dvosmerna razmena započinje onog trenutka kada klijent kompletira prvi segment koji od tog momenta postaje dostupan drugim peerovima. Ovaj način razmene povoljan je za velike datoteke poput filmova, operativnih sistema i velikih programskih paketa, ali se koristi i za manje datoteke. Na ovaj način se izbegava problem drugih oblika razmene gde upload klijent trpi najveće opterećenje jer svi download klijenti vrše preuzimanje s jednog mesta i ne postoji istovremena međusobna razmena (najupečatljiviji primer je FTP protokol). BitTorrent omogućava da onog trenutka kada peer kompletira torrent, on postane seed za ostale peerove. Zbog ove karakteristike BitTorrenta jednu datoteku istovremeno može da preuzima na stotine klijenata, a da originalni seeder uopšte ne bude u swarmu, što omogućava opstanak torrenta na Mreži i preko godinu dana.

Torrenti se distribuiraju preko specijalizovanih Web sajtova – torrent pretraživača. Karakteristično je to što se pretraga ne vrši po nazivu datoteke već po nazivu torrenta tako da u torrent kontejneru može da bude i više datoteka sa različitim nazivima. Torrent se pravi tako što se u klijentu izabere jedna ili više datoteka za koje se pravi torrent, unese naziv torrenta i URL adresa trackera, komentar torrenta (na primer, detaljniji opis) i eventualno dodatne informacije. Na osnovu odabranih datoteka i unetih podataka generiše se TORRENT META kontejner koji se uploaduje na torrent pretraživač. Istovremeno se novokreirani torrent stavlja u seed režim u BitTorrent klijentu tako da bude dostupan peerovima koji preuzmu kontejner sa pretraživača.

BitTorrent protokol efikasnu primenu nalazi samo kod korisnika sa broadband vezom, dok mu je upotrebna vrednost smanjena kod dial up korisnika gde su česta isključenja s Mreže. S druge strane, mnogi HTTP serveri odbacuju sesije koje traju više sati, što je karakteristično za torrente gde je potrebno čak i duže vreme kako bi se kompletirali.

Više informacija o BitTorrent protokolu i klijentima možete pronaći na www.bittorrent.com, dok se pisak torrent pretraživača može pronaći na http://gettorrents.tk/.

Osnovni Termini

aviability – naziva se još i distributed copies, a predstavlja broj kompletnih kopija datoteke dostupnih klijentu. Svaki seed dodaje vrednost 1000 ovom broju pošto on ima kompletnu datoteku (iako imaju identičan oblik, ne treba mešati sa pojmom share ratio). Peerovi povezani sa delovima datoteke dodaju količinu tih delova na ovaj broj (na primer, peer sa 13,9 procenata od kompletne datoteke dodaje 0,139 u aviability).

choked – označava uploadera čiji klijent ne dozvoljava upload. Klijenti označavaju druge klijente kao choked ukoliko je drugi klijent seed, što znači da mu više nije potreban nijedan segment, kao i u slučaju da upload klijent ima opterećen upload bandwith i ne može da prihvati novu konekciju.

interested – predstavlja peer koji želi da preuzme segment koji klijent ima. Na primer, klijent koji uploaduje označava klijent koji downloaduje od njega kao interested ukoliko taj drugi klijent nema segment koji traži od upload klijenta.

leech – najčešće peer koji vrši negativan uticaj na swarm tako što ima veoma nizak share ratio. Drugim rečima, više downloaduje nego što uploaduje. Poseban problem predstavljaju oni klijenti koji nakon kompletiranja torrent ne ostavljaju za seed, već ga uklanjaju iz klijenta pre nego što share ratio dostigne vrednost 1000. Leech se često pogrešno koristi pri označavanju onoga što predstavlja peer – člana swarma koji nije preuzeo datoteku u celosti.

peer – jedna instanca BitTorrent klijenta pokrenuta na računaru koji je povezan na Internet i s kojim se može uspostaviti veza u cilju razmene podataka. Iako peer najčešće nema kompletnu datoteku, već samo pojedine segmente, često se koristi kao odrednica za svakog učesnika u swarmu, čak i za seed (takođe se koristi i termin „klijent”).

seed – predstavlja peer koji ima kompletan torrent i deli ga ostalim klijentima. Što je više seedera, to je veća šansa da se preuzme kompletna datoteka.

share ratio – odnos količine uploadovanih i downloadovanih podataka. Često se naziva i S/L ratio (seed/leech). Označava se faktorom 1000 kada je količina uploadovanih podataka jednaka količini downloadovanih. Negativan share ratio (<1000)>1000) koristan. Pojedini trackeri i BitTorrent klijenti ograničavaju upload u slučaju da je share ratio prenizak.

snubbed – ppload klijent se označava kao snubbed kada download klijent ne primi nikakve podatke od njega za punih 60 sekundi

swarm – zajednički naziv za korisnike koji međusobno razmenjuju torrent u okviru privremeno formirane P2P mreže (na primer, tri peera i četiri seeda čine swarm od sedam tačaka).

torrent – predstavlja TORRENT META kontejner (koji sadrži nazive sadržanih datoteka, veličinu i HASH vrednost svakog segmenta, što omogućava verifikaciju preuzimanja ispravnog segmenta, adresu tracker servera i druge informacije kao što su naziv i verzija klijenta koji je napravio torrent, datum i vreme kreiranja i slično), a istovremeno predstavlja i sve datoteke koje su sadržane u TORRENT META kontejneru.

tracker – server koji beleži koji su seederi i peerovi u swarmu. Klijenti povremeno šalju informacije trackeru i istovremeno primaju podatke o drugim klijentima s kojima mogu da se povežu. Tracker nije direktno uključen u razmenu jer se na njemu ne nalazi kompletna kopija datoteke (torrent), već samo posreduje u povezivanju klijenata.