You are on page 1of 39

SVEUILITE U ZAGREBU Fakultet organizacije i informatike Varadin

P2P razmjena datoteka


Click to edit Master subtitle style BitTorrent protokol
4/29/12

Mentor: mr.sc. A. Brumni Marina Markovi 35881/07-R

U Varadinu,

Sadraj
Uvod P2P mrena arhitektura Podjela prema nainu ispisivanja podataka

Centralizirane (hibridne) P2P mree Decentralizirane P2Pmree

Podjela prema nainu spajanja sudionika mree:

strukturirani i nestrukturirani sustavi

Uvod
Peer-to-peer mree (P2P) vrlo popularan nain razmjene podataka i informacija meu korisnicima peer = onaj koji je jednak , vrnjak, predstavlja i klijenta i servera razmjena se temelji na meusobnom povjerenju sudionika broj sudionika na peer-to-peer mreama svakodnevno raste, meutim rastom broja korisnika pruaju se i vee mogunosti za

P2P mrena arhitektura


mogue ju je zamisliti tako da su na istom raunalu postavljeni posluitelj i klijent, tj. svako raunalo moe istovremeno primati i davati resurse drugim sudionicima pripadajue odgovarajue mree. brzina rada peer-to-peer mrea svaki sudionik mree mora poznavati mrenu adresu drugog sudionika kako bi mu mogao pristupiti. Takav nain rada znaajno usporava rad samog mrenog sustava ukoliko se radi o velikom broju

Podjela prema nainu ispisivanja podataka

Nain ispisivanja podataka u peer-to-peer mreama od velike je vanosti jer odreuje brzinu rada mree. Ispisivanjem podataka pomou sredinjeg posluitelja je ubrzan rad mree jer sudionik preuzima popis traenih podataka sa posluitelja (to nije sluaj kod decentraliziranih mrea). Kao i kod svakog mrenog sustava, poeljna je to vea brzina prijenosa podataka, to kod peer-to-peer mrea esto nije sluaj.

Podjela prema nainu ispisivanja podataka

Centralizirane (hibridne) P2P mree

Kod centraliziranih P2P mrea popis dostupnih podataka se nalazi na sredinjem posluitelju, to uvelike ubrzava rad mree. Popisi datoteka se osvjeavaju svaki puta kada se korisnik spoji ili odspoji sa mree. HIBRIDNE - sadre posluitelja i time odstupaju od arhitekture konvencionalnih peer-to-peer mrea. Svaki sudionik mree ima izravnu vezu sa posluiteljem, ali i ostalim sudionicima mree. Sudionik mree s posluitelja preuzima popis dostupnih podataka (umjesto da popis preuzima od svakog sudionika mree) ime se znaajno ubrzava proces pretrage. Korisnik, podnositelj zahtjeva, odabire od koga e preuzeti datoteku te se uspostavlja direktna HTTP konekcija izmeu dva korisnika.

Podjela prema nainu ispisivanja podataka

Centralizirane (hibridne) P2P mree

Prikaz arhitekture centraliziranih hibridnih peer-to-peer mrea

Podjela prema nainu ispisivanja podataka

Centralizirane (hibridne) P2P mree

predstavnik: Napster - on line usluga za dijeljenje glazbenih datoteka stvorio ju Shawn Fanning radila je od 1999. do 2001. - zaustavljena na temelju tubi i sudske odluke o krenju autorskih prava. otvorila put decentraliziranim P2P sustavima koje je puno tee drati pod kontrolom i ugasiti. glavne prednosti centraliziranog sustava:

Podjela prema nainu ispisivanja podataka

Decentralizirane P2P mree

ne sadre sredinje posluitelje, ve samo sudionike. novija generacija P2P mrea Takvi P2P sustavi dalje se mogu podijeliti (prema nainu spajanja sudionika mree (eng. Node connection))na:

strukturirane i nestrukturirane sustave

Decentralizirane nestrukturirane P2P mree


nastaju proizvoljnim meusobnim spajanjem sudionika upit se alje svim dostupnim sudionicima kako bi se pronaao to vei broj sudionika koji imaju isti podatak Nedostatak : neki upiti nemaju rezultata. ukoliko su u pitanju popularni podaci upit e rezultirati uspjenom pretragom ukoliko se radi o rijetkim podacima, postoji velika

Decentralizirane nestrukturirane P2P mree

mrena topologija nema definiranu strukturu, ve mrea peerova ini sluajan graf. Podaci su pohranjeni na peerovima koji ih kreiraju, a pretraivanje sustava izvodi se: preplavljivanjem ili sluajnim izborom (eng. random walk). Glavni predstavnik ove podskupine P2P sustava je Gnutella.

Decentralizirane nestrukturirane P2P mree

Gnutella - jedna od popularnijih mrea za razmjenu podataka na Internetu. koristi ogranieno preplavljivanje pri traenju podataka -svaki zahtjev se ne razailje beskonano dugo svim susjedima pojedinog ve se takvo guenje mree provodi u vrlo ogranienom broju koraka broj dozvoljenih koraka (eng. time to live) postavljen na 7, a svaki vor koji primi upit umanji vrijednost za 1 = vrlo velika vjerojatnost

Decentralizirane nestrukturirane P2P mree

Osnovne karakteristike:

jednostavnost protokol iza cijele mree je vrlo jednostavan, razvijen u samo 14 dana robusnost ne postoji jedna toka ispada jer ukoliko jedan vor propadne, ostali vorovi su dovoljno inteligentni da to shvate i poveu se jedni na druge. niska cijena objavljivanja novog podatka podatak ostaje na peeru koji ga objavljuje.

Decentralizirane strukturirane P2P mree

sustavi sa definiranom mrenom topologijom svaki peer ima svoj jedinstveni identifikator p (npr. ime) koji je mogue sa raspodijeljenim algoritmom jednoznano povezati sa kljuem k. Implementira se metoda lookup (k) - vraa identifikator peera koji je odgovoran za klju k. Strukturirani P2P sustavi najee se zasnivaju na ideju DHT a (Distributed Hash Table)

Decentralizirane strukturirane P2P mree

od njih se zahtjeva da imaju dvije osnovne metode :

put (k,d) metoda za pridruivanje jedinstvenog kljua glavnom identifikatoru d = get (k) metoda za dohvaanje identifikatora iz poznatog kljua.

Svaki peer odrava dio globalnog DHTa i odgovoran je za podskup kljueva k i njima pridruenih podataka.

Decentralizirane strukturirane P2P mree

Chord - strukturirani P2P sustav

Decentralizirane strukturirane P2P mree

Svojstva:

garantira pronalaenje podatka u O(log n) koraka (n -broj peerova u mrei) - omoguava potpuno skalabilno rjeenje u odnosu na nestrukturirane sustave ima poveanu cijenu objavljivanja novog podatka u odnosu na nestrukturirane P2P sustave odrava dodatne strukture podataka (tablice usmjeravanja) radi umjeravanje upita prema peerovima koji pohranjuju traene podatke

Kod decentraliziranih peer-to-peer mrea esta pojava su tzv. super-vorovi (eng. Super peer) - mogu raditi kao posluitelji i pruati popis podataka drugim sudionicima mree. Takve mree kombiniraju brzinu rada centraliziranih mrea i

DHT
Distributed Hash Tables - razred decentraliziranih raspodijeljenih sustava pruaju uslugu pretraivanja slino hash tablici Parovi oblika (ime, vrijednost) se spremaju u DHT i svaki sudjelujui vor ili peer moe uspjeno dohvatiti vrijednost vezanu za neko ime. odgovornost za mapiranje imena uz vrijednost je takoer raspodijeljena izmeu sustava promjena u skupini sudionika ustvari uzrokuje

DHT
3 glavna pozitivna svojstva.
1.

Decentralizacija: vorovi kolektivno tvore mreu bez ikakve centralne komunikacije. Skalabilnost: sustav e stabilno funkcionirati ak i sa nekoliko tisua ili nekoliko milijuna vorova. Tolerancija na pogreke: sustav bi trebao biti pouzdan ak i kada velik broj vorova stalno dolazi u sustav, odlazi iz sustava ili se kvari.

2.

3.

DHT
Sudionik 1 koji posjeduje traeni podatak, rasprnu vrijednost i pripadajui klju koji obiljeavaju taj podatak. Sudionik 2, koji eli preuzeti taj podatak mora Sudioniku 1 poslati odgovarajui klju kako bi mogao preuzeti podatak. Protokoli za provjeru usporeuju klju primljen od Sudionika 2, te klju Sudionika 1. Ukoliko su kljuevi jednaki, Sudionik 2 je u mogunosti preuzeti podatak.

Prikaz rada peer-to-peer mree s distribuiranim rasprnim tablicama

Pregled P2P mrea i pripadnih klijenata


Samim P2P mreama pristupa se uz pomo klijenta program koji omoguuje njeno pretraivanje i pohranjivanje traene datoteke. U tablici se nalazi popis nekih najpoznatijih P2P mrea i njihovih klijentskih programa.

Primjene P2P mrea


Uinkovitost - glavni razlog velike popularnosti P2P mree se primjenjuju za:

dijeljenje podataka (BitTorrent, Gnutella,Freenet), istraivanja i znanstvene informacije (Sciencenet), pregledavanje multimedijskih sadraja peercasting (P2PTV), glasovnu komunikaciju putem Interneta (VoIP) (Skype), pismenu komunikaciju putem Interneta.

Statistike koritenja P2P mrea

Izvjee Internet Study 2008/2009 tvrtke Ipoque izraen na temelju podataka koje su ustupili ponuai Internet usluga i sveuilita diljem svijeta

Prikaz najee koritenih peer-to-peer mrea prema

BitTorrent
dizajnirao ga programer Bram Cohen 2001. godine P2P protokol namijenjen distribuciji velikih koliina podataka optereenje irenja sadraja raspodijeljeno na sve zainteresirane korisnike Osnovna ideja:

datoteka se razbije na manje segmente koji se zovu dijelovi (pieces) veliine od 64kB 4MB Svaki dio ima odreeni zatitni dio (engl. checksum) koristei pritom SHA1 algoritam. svaka osoba (peer) koja preuzima (download) dijelove nekog

BitTorrent Osnovni pojmovi:

BitTorrent klijent je bilo koji program koji implementira BitTorrent protokol. Peer je raunalo na kojem je pokrenuta klijentska aplikacija. .torrent (engl. torrent jaki mlaz, bujica,poplava) - mala datoteka u kojoj

BitTorrent
reseeding ponovno uvoenje datoteke u bitTorrent mreu od nekog tko ima cjelovitu kopiju share ratio (hrv. omjer dijeljenja) broj koji se dobiva dijeljenjem koliine podataka koju poalje klijent i koji skine. Koristi se u tracker-ima za dodjeljivanje brzina i prioriteta brzine primanja podataka. availability (hrv. dostupnost) broj potpunih

BitTorrent
interested (hrv. zainteresiran) opisuje raunalo koje eli doi do dijela datoteke koju klijent posjeduje. Npr., klijent koji alje podatke oznaava klijenta koji skida podatke kao interested ukoliko on ve ne sadri taj blok podataka, te ga eli skinuti. scrape zahtjev koji klijent poalje tracking server-u kojim eli doi do informacija kao to su s kojim klijentom treba dijeliti torrent te kakvi su

BitTorrent

Nain rada

Da bi objavio neku datoteku ili grupu datoteka, peer prvo mora stvoriti malu datoteku - torrent, Korisnik

pretrauje Internet kako bi pronaao torrent koji ga zanima, preuzme ga na svoje raunalo i otvoripomou BitTorrent klijenta.

Klijent se spaja na tracker opisan u torrentu Od trackera prima listu peerova koji u tom trenu imaju dijelove eljene datoteke Klijent se zatim spaja na te peerove i dohvaa razliite dijelove datoteke koju eli.

BitTorrent

Nain rada

Kada novi klijenti ulaze u swarm, zapoinju razmjenu datoteka jedni sa drugima umjesto da svi preuzimaju eljenu datoteku od seedera Klijent sadrava mehanizme za optimizaciju odnosa koliine preuzetih i predanih dijelova. Preuzimanje dijelova vri se proizvoljnim redoslijedom Dostupnost torrenta je broj potpunih kopija datoteke koje su distribuirane u dijelu swarma na

BitTorrent

Nain rada
TIT-FOR-TAT algoritam

Razvijen kako bi se poticalo tzv. dijeljenje bandwidth-a (istovremeno skidanje i slanje podataka), implementiran u klijenta svakog korisnika. ukoliko korisnik eli skinuti podatke sa BitTorrent mree, mora rtvovati dio svoje propusnosti za slanje podataka (upload bandwidth), u suprotnom mora podnositi veoma niske brzine za skidanje podataka.

BitTorrent

Nain rada

Tracker - centralna lokacija na koju se peerovi mogu spojiti kako bi dobili IPadrese drugih peerova. Treba pokupiti IP adresu i broj vrata (porta) kako bi mogao dijeliti podatke sa peerovima spojenima na isti swarm. Alternativa: trackerless system decentralizirani tracking u kojem se svaki peer ponaa kao tracker (implementirano u klijentima: BitTorrent, Torrent, BitComet, rTorrent i

Hvatanje paketa u Wiresharku

Protokol se sastoji od rukovanja (handshake) za kojim slijedi naizmjenian prijenos poruka. Rukovanje zapoinje s znakom 19 (decimalno) nakon ega slijedi string 'BitTorrent protocol'. Vodei znak je duljina prefiksa, koji je tu stavljen u nadi kako bi novi protokoli napravili isto te bi se tako razlikovali jedni od drugih. Nakon fiksnog zaglavlja dolazi implementacijama su sve nule. 8 rezerviranih bajtova, a u trenutnim

Slijedee dolazi 20-bajtni SHA1 hash (to je ista vrijednost koja je oglaena kao info_hash trackeru). Ako obje strane ne poalju istu vrijednost, prekidaju vezu. Nakon toga dolazi 20 bajtno polje peer ID koji biva prijavljen u zahtjevu trackera i sadran je ju popisu peerova u odgovoru trackera. Ako peer ID na primateljevoj strani ne odgovara onom koji inicirajua strana oekuje, veza se prekida.

Hvatanje paketa u Wiresharku

Vrste poruka

keep-alive: <len=0000> - poruka duljine 0, duljina prefiksa postavljena na 0. Ne postoji ID poruke niti korisni sadraj. Odravaju vezu na ivotu ako nikakav zahtjev nije poslan 2 minute. choke: <len=0001><id=0> - poruka fiksne duljine, nema payloada

unchoke: <len=0001><id=1> payloada interested: <len=0001><id=2> payloada

- poruka fiksne duljine, nema

- poruka fiksne duljine, nema

Hvatanje paketa u Wiresharku

Vrste poruka

bitfield: <len=0001+X><id=5><bitfield> - moe biti poslana samo odmah nakon to je rukovanje obavljeno i prije nego li su poslane ikakve druge poruke. Poruka je opcionalna. Varijabilne je duljine, gdje je X duljjina bitfield-a. payload je bitfield koji predstavlja dijelove koji su uspjeno primljeni. Bit najvie vrijednosti u prvom bajtu odgovara dijelu s indeksom 0. Bitfield krive duljine se smatra errorom i klijent treba prekinuti vezu ako ga prime.

request: <len=0013><id=6><index><begin><length> - poruka fiksne duljine, koristi se za zahtjev bloka. Payload sadri slijedee informacije: indeksni broj dijela, poetak pomak (offset) unutar dijela, traena duljina

piece: <len=0009+X><id=7><index><begin><block> - poruka varijabilne duljine, gdje je X duljina blokova. Payload sadri ove podatke: broj indeksa dijela, poetak pomak unutar dijela, block blok podataka koji ine podskup dijela specificiranog brojem indeksa.

cancel: <len=0013><id=8><index><begin><length> - poruka fiksne duljine, slui za otkazivanje traenih blokova. Payload je identian onome u poruci zahtjeva (request).

Hvatanje paketa u Wiresharku

Vrste poruka

Ukratko, ID poruka: 0 - choke 1 - unchoke 2 - interested 3 - not interested 4 - have 5 - bitfield

Zakljuak
P2P kompjutorska mrea koristi kumulativnu pojasnu irinu sudionika mree radije nego konvencionalne centralne izvore to je danas ini primamljivim nainom za prijenos podatka. Shodno tome P2P promet je i dalje dominantan nain razmjene podataka ija popularnost i dalje raste usprkos pojavi alternativa (npr. streaming).

Literatura
http://en.wikipedia.org/wiki/Peer-to-peer http://en.wikipedia.org/wiki/BitTorrent_( protocol) http://www.bittorrent.org/beps/bep_0003.html http://wiki.theory.org/BitTorrentSpecification http://en.wikipedia.org/wiki/Terminology_of_ BitTorrent http://www.fer.hr/_download/repository /Peer2Peer_mreze.pdf

You might also like