Você está na página 1de 58

SVEUILITE U SPLITU

SVEUILINI ODJEL ZA STRUNE STUDIJE


ODSJEK ZA INFORMACIJSKU TEHNOLOGIJU




DAVORKA LETE


ZAVRNI RAD

ARHITEKTURA PARTNERSKIH P2P
MREA





Split, listopad 2013.

SVEUILITE U SPLITU
SVEUILINI ODJEL ZA STRUNE STUDIJE
ODSJEK ZA INFORMACIJSKU TEHNOLOGIJU





PREDMET: PROJEKTIRANJE I UPRAVLJANJE
RAUNALNIM MREAMA


ZAVRNI RAD



KANDIDAT: Davorka Lete
TEMA ZAVRNOG RADA: Arhitektura partnerskih P2P mrea
MENTOR: mr. sc. Tatjana Liste, vii pred.



Split, listopad 2013.


SADRAJ
1. UVOD ..................................................................................................................................................... 6
2. P2P MREA .......................................................................................................................................... 7
2.1. Uvod u P2P mree .......................................................................................................................................... 7
2.2. Povijesni razvoj P2P mrea ............................................................................................................................. 8
2.3. Razlika P2P i klijent - posluitelj arhitekture ................................................................................................... 9
3. ARHITEKTURA P2P MREA ........................................................................................................ 11
3.1. Centralizirane P2P mree ...............................................................................................................................11
3.2. Decentralizirane P2P mree ...........................................................................................................................12
3.2.1. Strukturirane P2P mree .............................................................................................................................. 13
3.2.2. Nestrukturirane P2P mree .......................................................................................................................... 14
4. P2P APLIKACIJE .............................................................................................................................. 16
4.1. P2P mree za dijeljenje podataka ..................................................................................................................16
4.2. P2P aplikacije za IM i online chat ..................................................................................................................19
4.3. P2P aplikacije za glasovnu i pisanu komunikaciju (VoIP) ...............................................................................21
4.4. P2P aplikacije za multimediju ........................................................................................................................22
4.5. P2P aplikacije za suradnju i grupe za raspravu ...............................................................................................22
5. PRINCIPI RADA P2P MREA ....................................................................................................... 24
5.1. Formiranje nadmree ....................................................................................................................................24
5.2. Pretraivanje nad-mree ...............................................................................................................................25
5.2.1. Hash tablice .................................................................................................................................................. 26
5.3. Prijenos podataka izmeu vorova ................................................................................................................26
5.3.1. TCP protokol ................................................................................................................................................. 27
5.3.2. UDP protokol ................................................................................................................................................ 27
6. POHRANA PODATAKA NA P2P MREAMA............................................................................. 28
6.1. Redundantnost podataka ..............................................................................................................................29
6.2. Brisanje oznaka (engl. erasure codes) ............................................................................................................29
6.3. Asimetrino itanje i pisanje podataka ..........................................................................................................31
6.4. Kvota i pravedna razmjena podataka ............................................................................................................31
6.5. Klasifikacija proizvoda za pohranu podataka .................................................................................................32
7. SIGURNOST P2P MREA ............................................................................................................... 33
7.1. Vanjske sigurnosne prijetnje .........................................................................................................................33
7.1.1. Raunalni virusi i crvi .................................................................................................................................... 34
7.1.2. Backdoor pristup .......................................................................................................................................... 34
7.1.3. Nezatiene poruke ...................................................................................................................................... 34
7.1.4. Povjerljivost .................................................................................................................................................. 35
7.2. Sigurnosni mehanizmi ...................................................................................................................................35
7.2.1. Tehnike tajnog kljua .................................................................................................................................... 35
7.2.2. Tehnika javnog kljua ................................................................................................................................... 35
7.2.3. Asimetrini parovi kljueva.......................................................................................................................... 35
7.3. Budunost sigurnosti P2P mrena..................................................................................................................36
7.3.1. Biometrika .................................................................................................................................................... 36
8. PRAKTINI RAD .............................................................................................................................. 37
8.1. Uvod ..............................................................................................................................................................37
8.2. Grafiko suelje .............................................................................................................................................37
8.3. Pozadinska komunikacija ..............................................................................................................................41
8.4. WCF konfiguracijska datoteka .......................................................................................................................49
9. ZAKLJUAK ....................................................................................................................................... 57
10. LITERATURA ................................................................................................................................. 58
SAETAK

Tema ovog zavrnog rada je Arhitektura partnerskih P2P mrea. Peer-to-peer mree, poznate
pod nazivom P2P, popularan su nain razmjene podataka meu korisnicima. Svi korisnici u P2P
mrei su ravnopravni i dijele podatke izravno izmeu sebe, bez posredovanja sredinjeg
posluitelja. Postoje i posebni programi za dijeljenje podataka u P2P mrei i ti se programi
obino koriste za dijeljenje audio i video sadraja. Glavne karakteristike P2P mrea opisane su
kroz sedam poglavlja. Od kratke povijesti razvoja P2P mrea, podjele P2P mrea, uvida u
popularne P2P aplikacije, naina rada i pohrane podataka, pa sve do sigurnosti P2P mrea i
prednosti i mana. U praktinom dijelu prikazan je jedan od naina upotrebe P2P mrea, kroz
jednostavnu aplikaciju za komunikaciju izmeu korisnika. P2P mree su korisne za drutveni
napredak u pogledu dijeljenja informacija i za oekivati je da e P2P mree u budunosti olakati
traenje podataka na Internetu.

SUMMARY
Architecture of the affiliate P2P networks.
The subject of this final thesis is the Architecture of the affiliate P2P networks. Peer-to-peer
networks, well-known as P2P, represent a popular way of information exchange between users.
All users in P2P networks are equal and share information directly, without help of a central
server. There are specialized application for data exchange in P2P network, with sharing audio
and video content as their most common use. The main properties of P2P networks are described
in seven chapters, starting with brief history of P2P network development, classification of P2P
networks, insight of popular P2P applications, principles of work and data storage, and finally
security and advantages/disadvantages of P2P networks. Example of P2P network utilization is
shown in the practical part of this paper, with a simple chat application. P2P networks can be
socially beneficial through information sharing and are expected to facilitate information
searching on the Internet.


6

1. UVOD

Cilj ovog zavrnog rada je pokazati princip rada P2P (engl. Peer to Peer) mrea i aplikacija za
dijeljenje datoteka. Peer-to-peer mree vrlo su popularan nain razmjene podataka i informacija
meu korisnicima. Razmjena podataka u P2P mreama temelji se na meusobnom povjerenju
sudionika. Promet ostvaren P2P mreama u posljednjih 5 godina premaio je promet ostvaren
pregledavanjem web stranica i drugim aktivnostima. Broj sudionika na P2P mreama
svakodnevno raste. (URL1)
U drugom poglavlju je opisana kratka povijest razvoja P2P mrea od mree ARPANET-a (engl.
The Advanced Research Projects Agency Network) do P2P programa druge generacije, te razlika
P2P mree u odnosu na klijent-posluitelj arhitekturu.
P2P arhitektura koja je opisana u treem poglavlju predstavljena je kroz podjelu prema nainu
ispisivanja podataka koji se razmjenjuju.
etvrto poglavlje daje uvid u popularne P2P aplikacije i njihovu originalnu namjenu.
Peto poglavlje opisuje nain rada P2P mree. Nain rada opisan je kroz korake kao to su
formiranje nad-mree, pretraivanje nad-mree i prijenos korisnikih podataka izmeu vorova.
esto poglavlje opisuje nain pohrane podataka opisujui kljune pojmove kao to su
redundantnost podataka, brisanje oznaka, asimetrino itanje i pisanje podataka, odabir vorova,
kvota i pravedna razmjena podataka te klasifikacija proizvoda za pohranu podataka.
Jedan od najvanijih koncepata P2P arhitekture sigurnost, opisana je u sedmom poglavlju
dajui uvid u nunost zatite podataka. Opisane su vanjske i interne sigurnosne prijetnje kao i
sigurnosni mehanizmi.
U praktinom radu prikazan je osnovni koncept rada P2P aplikacija preko aplikacija za izmjenu
poruka kao to je Google Talk. Aplikacija je kodirana u programskom jeziku C# koristei
razvojni alat Microsoft Visual Studio 2010. Pokreu se dvije aplikacije te korisnik jedne
aplikacije razmjenjuje poruke s korisnikom druge aplikacije. Poruke koje prvi korisnik upisuje
vidljive su drugom korisniku i obrnuto.
U zavrnom poglavlju navedene su prednosti i mane P2P arhitekture.


7

2. P2P MREA

P2P mrea je ostvarila ogroman interes u cijelom svijetu kako meu korisnicima Interneta tako i
kod strunjaka za raunalne mree. Brojne tvrtke i web stranice su promovirali P2P tehnologiju
kao budunost internetskog povezivanja.
P2P dijeljenje datoteka takoer je stvorilo mnoge kontroverze u vezi zakona i pravednog
koritenja datoteka. Openito, strunjaci se ne slau u raznim detaljima vezano za P2P
tehnologiju i njen daljnji razvoj u budunosti.

2.1. Uvod u P2P mree

P2P je raunalna mrea u kojoj nema posluitelja ni klijent-posluitelj modela koji je dominirao
mreama u poetcima Interneta, a koji dominira strukturom Interneta i danas.
U P2P mrei svi su vorovi (engl. peer) jednaki i istovremeno imaju funkciju klijenta i
posluitelja. Kako ne postoji netko tko e kontrolirati razmjenu podataka, jer ne postoji glavno
raunalo (engl. host) ni posluitelj (engl. server) koji nadgleda sve ostale, svi vorovi posjeduju
jednaka prava uzimanja i davanja resursa.
Iz toga se da zakljuiti da P2P mrea ima sljedee karakteristike:
svaki vor je ravnopravan,
komunikacija izmeu vorova je izravna (nema posluitelja),
mrea je pouzdana jer nema jednu toku kvara (glavno raunalo ili posluitelj).

Slika 2.1. Shema P2P mree

8

2.2. Povijesni razvoj P2P mrea

P2P nain umreavanja nije novi koncept. Tragovi P2P mrea datiraju jo iz samih poetaka
Interneta, tonije iz ezdesetih godina prolog stoljea kada je Internet zamiljen kao P2P mrea.
Preteu Interneta ARPANET, razvilo je ameriko Ministarstvo obrane u cilju dijeljenja
raunalnih resursa unutar sveuilita SAD-a. Svoje lanove, ARPANET je spajao na principu
jednakih sudionika jer ideja klijent-posluitelj tada jo nije postojala.
Prva komercijalno koritena P2P mrea je mrea raspravnih grupa (engl. Usenet news, skraeno
USENET), gdje su posluitelji meusobno komunicirali i razmjenjivali nove poruke unutar tih
grupa. Ipak, i takav posluitelj je bio klijentsko-posluiteljske arhitekture jer su mu korisnici
izravno pristupali kako bi proitali ili napisali poruku.
Do prije dvadesetak godina Internet su sainjavala velika raunala koja su imala stalne IP adrese
i koja su bila konstantno povezana. Nakon pojave svjetske mree (engl.World Wide Web,
skraeno WWW), zbog brzog rasta broja korisnika javila se potreba za dinaminim
dodjeljivanjem IP (engl. Internet Protocol) adrese pri svakom spajanju, jer su osobna raunala
poela ostvarivati povremeni pristup Internetu. Iz ovih razloga na scenu dolaze P2P mree.
Centralizirani P2P sustav Napster pojavio se u svibnju 1999. godine. Napster je omoguio
korisnicima da se spoje i dijele svoju omiljenu glazbu izravno s drugim krajnjim korisnicima,
bez brige oko pronalaenja posluitelja koji bi im to omoguio i bez raznih ogranienja i pravila.
Vrlo brzo nakon pojave, Napster se poeo suoavati sa pravnim izazovima. Nakon brojnih tubi,
u svibnju 2002. godine objavljena je prodaja Napster-a, a vrlo brzo nakon toga i bankrot.
Nakon Napstera pojavila se fleksibilna mrea Gnutella koja je organizirana u hijerarhijske klaste
(engl.cluster, skupina istovrsnih stvari) i bez centralnog raunala kod koje postoji nekoliko
razina sudjelovanja klijenata obzirom na brzinu veze i snagu raunala. Korisnici Gnutella mree,
da bi se spojili na mreu, sve to moraju znati je adresa bilo kojeg raunala u mrei od kojeg
onda dobivaju poetne parametre za pristupanje mrei.
U oujku 2001. godine predstavljeni su protokol FastTrack i klijent KaZaA koji su sa sobom
donijeli dodatna poboljanja kao to su super vorovi (engl.supernodes) i mrijestlita (engl.
spawning). FastTrack je slian Gnutelli po tome to nema centralnog servera i svi klijenti su
spojeni ravnopravno.
Negdje u isto vrijeme dok su se razvijale FastTrack mree, zapoinje i rad na BitTorrent
protokolu koji je danas najraireniji protokol razmjene podataka preko Interneta u P2P mrei.


9

2.3. Razlika P2P i klijent - posluitelj arhitekture

Klijent-posluitelj je arhitektura gdje korisnik (klijent) i posluitelj igraju razliite uloge u
mrenom okruenju. Najoitiji je primjer kod pregledavanja Internet stranica. Korisniko
raunalo i Internet preglednik su klijent, dok su raunalo i baza podataka koji ine Internet
stranicu posluitelj. Klijent je obino aktivan korisnik koji alje zahtjeve i eka dok se isti ne
ispune, dok je posluitelj pasivan, eka na zahtjeve, ispunjava ih i alje korisniku.
Posluitelji su obino veoma jaka raunala s dobrim konfiguracijama i karakteristikama zbog
toga to istovremeno moraju obraditi mnogo zahtjeva koji rastu iz dana u dan. Obino su na
posluiteljima instalirani posebni operacijski sustavi koji sadre naprednije opcije u odnosu na
obine klijent operacijske sustave.


Slika 2.2. Klijent-posluitelj model Slika 2.3. P2P model



U P2P arhitekturi, resursi se dijele izmeu vorova bez koordinacije sredinjeg posluitelja.
vorovi se ponaaju kao dobavljai i potroai resursa. Nema centralizirano-sigurnosnog
sustava, a krajnji korisnici imaju neogranien pristup resursima to smanjuje sigurnost u P2P
mrei.




10

P2P arhitektura Klijent-posluitelj arhitektura
Decentralizirani oblik mrene arhitekture. Centralizirani oblik mrene arhitekture.
Pristup mrei i zadatci podijeljeni su
ravnopravno meu lanovima. To je vrsta
odnosa ''svatko nosi svoj teret''.
Kako bi pristupili resursima, klijenti prvo
moraju poslati zahtjev posluitelju. To je vrsta
usluge ''poalji zahtjev i isti e ti se ispuniti''.
lanovi imaju iste povlastice i prava i na isti
nain pristupaju razliitim izvorima podataka.
Nema razlike ni na koji nain meu lanovima.
vorovi izravno komuniciraju jedan s drugim,
bez potrebe za sredinjim posrednikom.
Klijenti su radne stanice ili korisnika raunala
koji ne dijele svoje resurse, ve alju zahtjeve i
ekaju dok se isti ne ispune.
P2P mrea se obino koristi u P2P programima
za razmjenu datoteka, kao to su Napster i
Bitorrent.
Elektronika pota, bankarske usluge, ak i
HTTP (engl. Hypertext Transfer) protokol su
primjeri klijent-posluitelj modela.

Glavna razlika izmeu klijent-posluitelj i P2P arhitekture je ta da u klijent-posluitelj arhitekturi
odreeni klijenti alju zahtjeve za uslugama, a posluitelji su ti koji ispunjavaju te zahtjeve, dok
se u P2P arhitekturi vorovi ponaaju i kao posluitelji i korisnici usluga. Nadalje, klijent-
posluitelj sustavi zahtijevaju glavnog posluitelja tako da su u provedbi dosta skuplji od P2P
sustava. S druge strane, glavni posluitelj osigurava razinu pristupa klijentima to prua bolju
sigurnost od P2P sustava u kojima sigurnost ovisi o krajnjim korisnicima. P2P sustavi
poveanjem broja vorova gube na znaajkama, dok su klijent-posluitelj sustavi stabilniji i
mogu se poveavati koliko god je potrebno. Stoga izbor jednog od ova dva sustava ovisi o
okruenju koje se stvara.






11

3. ARHITEKTURA P2P MREA

Kao to postoje razliiti tipovi arhitekture raunalnih mrea openito, tako postoje i razliiti
tipovi i arhitekture P2P mree.
P2P mree je mogue podijeliti prema nainu ispisivanja podataka koji se razmjenjuju (engl.
File listing) i to na:
Centralizirane P2P mree i
Decentralizirane P2P mree.
Dalje se decentralizirane P2P mree dijele na:
Strukturirane P2P mree i
Nestrukturirane P2P mree.

3.1. Centralizirane P2P mree

Kod P2P mrea sredinji posluitelj odrava direktorije dijeljenih datoteka pohranjenih na
pojedinanom voru. Svaki put kad se klijent spoji ili od odspoji od mree, direktorij se obnovi.
U ovom modelu, kompletna kontrola i poruke se alju na sredinji posluitelj. Posluitelj tada
usporeuje zahtjev s bazom podataka i prikazuje rezultate upita. Jednom kad klijent dobije
pozitivnu informaciju o pronaenom rezultatu, kontaktira vor direktno i preuzima traenu
datoteku. Datoteka niti u jednom trenutku nije pohranjena na centralnom posluitelju.
Centralizirana P2P mrea prua najvee performanse kada se govori o traenju i lociranju
datoteka. Jedna od glavnih prednosti centraliziranih mrea je postojanje tablice pomou koje se
sve datoteke mogu brzo i jednostavno locirati. Kako se tablica redovito obnavlja, rezultati
pretrage su odmah dostupni za preuzimanje.
Druga prednost lei u injenici da svaki korisnik mora biti registriran na mrei te se pretraivanje
ostvaruje tako da se pretrauju trenutno ulogirani korisnici pa su dobiveni rezultati maksimalno
sveobuhvatni.
Mana arhitekture centraliziranih P2P mrea je ta to ima jednu ulaznu toku koja je ustvari slaba
karika mree jer ukoliko se taj posluiteljski sustav odsjee, itavi centralizirani sustav pada.
Predstavnik centralizirane P2P mree je Napster. Napster je bio on line usluga za dijeljenje
glazbenih datoteka. Nakon raznih tubi, originalna usluga je ugaena, ali je otvorila put
decentraliziranim P2P mreama.

12













Slika 3.1. Arhitektura centraliziranih P2P mrea

3.2. Decentralizirane P2P mree

Decentralizirane P2P mree su novija generacija P2P mrea, a glavna karakteristika im je ta to
ne postoji sredinji posluitelj koji bi koordinirao svim ostalim sudionicima mree i upravljao
operacijama meu njima. Svaki sudionik decentralizirane P2P mree ima jednaka prava i obveze
i na taj nain nijedan vor nije superioran drugome. Osim toga, svaki sudionik moe uzimati tue
i davati vlastite resurse drugim sudionicima s kojima komunicira u mrei.
Prednost decentraliziranih mrea je ta to ne postoji slaba toka koja bi mogla odjednom sruiti
cijeli sustav.
Nedostatak ove arhitekture je u vremenu koje je potrebno da bi upit koji se postavi doao do svih
vorova koji tvore mreu.
Decentralizirane P2P mree dalje se dijele na strukturirane i nestrukturirane P2P mree.

13


Slika 3.2. Arhitektura decentraliziranih P2P mrea


3.2.1. Strukturirane P2P mree

U strukturiranim P2P mreama, vorita su organizirana prema specifinim kriterijima ili
algoritmima, to dovodi do stvaranja topologija sa specifinim svojstvima. Algoritmi u
strukturiranim P2P mreama uvelike utjeu na uinkovitost i brzinu mree.
Indeksiranje u ovakvim mreama obino se temelji na distribuiranim rasprenim tablicama
(engl. Distributed Hash Table, skraeno DHT), gdje je svaki podatak obiljeen pripadajuom
rasprnom funkcijom (engl. Hash Function). Ovo omoguuje vorovima da trae podatke na
mrei koristei DHT tablice. Svaki podatak na mrei ima dva svojstva, a to su klju (engl.
value) i rasprena vrijednost (engl. hash value) koja su pohranjena u DHT tablicama. vor koji
eli dohvatiti traeni podatak od drugog vora mora tom voru poslati odgovarajui klju. Prvi
primjeri strukturirane P2P mree su Chan i Chord.
Chord je jedan od prvih protokola koji je poeo koristiti DHT tablice. On definira nain na koji
su kljuevi dodijeljeni vorovima, kako vor moe otkriti vrijednost zadanog kljua te kako
otkriti koji vor je odgovoran za zadani klju.



14


Slika 3.3. Strukturirana P2P mrea


3.2.2. Nestrukturirane P2P mree
Nestrukturirane P2P mree ne nameu oblik strukture mree. Svi lanovi ove mree spojeni su
meusobno i to na proizvoljan nain. Kada vor eli pronai neki podatak, upit se alje svim
dostupnim vorovima u cilju pronalaenja to veeg broja vorova koji imaju traeni podatak.
Nekada traeni upit ne daje nikakav rezultat, to je i nedostatak nestrukturiranih P2P mrea.
Nestrukturirane P2P mree ne bi trebale imati nikakav centralizirani sustav, ali postoji nekoliko
vrsta nestrukturiranih mrea s razliitim stupnjevima centralizacije, a to su iste i hibridne P2P
mree.
iste P2P mree se sastoje od ravnopravnih vorova koji koriste samo jedan sloj za usmjeravanje
prometa. Primjeri ovakve mree su Gnutella i Freenet kod kojih ne postoji neki centralni
posluitelj koji upravlja mreom niti neki preferirani vor s posebnom ulogom.
Hibridne P2P mree su kao mjeavina klijent-posluitelj i iste P2P arhitekture gdje se klijent-
posluitelj arhitektura odnosi na pretraivanje datoteka, a ista P2P mrea na njihov prijenos.
Primjeri ovakve mree su Gnutella2, koja je moderna implementacija Gnutelle, i Kazaa.


15





Slika 3.4. Nestrukturirana P2P mrea



16

4. P2P APLIKACIJE

P2P aplikacije su vrlo popularan nain razmjene podataka i informacija meu korisnicima jer je
tradicionalno preuzimanje programa i aplikacija sa web stranica zastarilo.
Jedan od razloga velike popularnosti P2P aplikacija je taj to korisnik komunicira samo s jednim
posluiteljem i preuzima eljenu datoteku samo s jednog posluitelja. Naravno, na samom
poetku, korisnik mora posluitelju poslati zahtjev za preuzimanje datoteke.
Kako se razmjena podataka temelji na meusobnom povjerenju korisnika, na P2P mrei je sve
uestalije irenje virusa i mnogih drugih napasti koje mogu izazvati i isto tako iskoristiti
zlonamjerni korisnici.
P2P aplikacije se dijele na:
aplikacije za dijeljenje podataka,
aplikacije za IM i online chat,
aplikacije za glasovnu i pisanu komunikaciju (VoIP),
aplikacije za multimediju i
aplikacije za suradnju i grupe za rasprave.


4.1. P2P mree za dijeljenje podataka

Razmjena podataka meu korisnicima vjerojatno je najuspjenija primjena P2P mrea. U veini
sluajeva, preuzimanje sa P2P mrea je bre od izravnog preuzimanja s posluitelja.
Danas, prijenos podataka ljudi rade svakodnevno to je jedan od razloga razvijanja niza
raunalnih programa koji korisnicima omoguavaju preuzimanje besplatnih sadraja od drugih
korisnika.
Najpoznatiji P2P protokoli za dijeljenje podataka su BitTorrent, Gnutella, Napster i eDonkey.

BitTorrent
BitTorrent je najpoznatiji protokol za dijeljenje podataka meu korisnicima koji je razvio Bram
Cohen. On omoguava brzo preuzimanje velikih datoteka pritom koristei minimum
Internetskog opsega. Besplatan je i ne sadri pijunske programe niti bilo kakve reklame.
BitTorrent ima svoj argon, a neke od najeih rijei koje se koriste su :

17

Lechees - korisnici koje preuzimaju odreenu datoteku, ali je ne dijele sa svog raunala.
Seed ili Seeder - korisnici kod kojih se nalazi BitTorrent datoteka koju drugi korisnici
preuzimaju. Kako bi BitTorrent radio, potreban je najmanje jedan seed.
Swarm - grupa raunala koja stimulativno alje ili prima istu datoteku.
.torrent - ekstenzija same datoteke koja se preuzima koristei BitTorrent.
Tracker - posluitelj procesa BitTorrent prijenosa.


Slika 4.1.Prikaz rada BitTorrent-a

BitTorrent protokol prebacuje dio posla koji se bavi pretragom za datotekama na centralni
server koji se zove tracker. Korisnici da bi preuzeli datoteku moraju je i dijeliti, to dovodi do
zakljuka da BitTorrent radi na principu Ja tebi, ti meni.
Poznate aplikacije iji se rad temelji na BitTorrent protokolu su:
Torrent,
Vuze(Azureus),
Bitcomet,
rTorrent.

18

Gnutella
Gnutella je protokol za dijeljenje veinom glazbenih datoteka. U oujku 2000. godine razvili su
je Justin Frankel i John Pepper, a danas je razvijaju lanovi GDF-a (engl. Gnutella Developer
Forum-a). Gnutellu podravaju aplikacije kao to su BearShare, Limewire, Frostwire, Shareaza.
Limewire je P2P aplikacija koja koristi Gnutellin protokol i koja se koristi za razmjenu datoteka.
Izgraena je na platformi mediaplayer-a sa optimiziranim rezultatima pretrage. Postoji besplatna
verzija, ali i komercijalna.
Shareaza ili Gnutella 2 odvaja se od ostalih P2P aplikacija po tome to moe pretraivati vie
P2P mrea. Ona je zapoela kao Gnutellin klijent, ali njezin autor Michael Stokes je potpuno
preradio originalnu Gnutellinu specifikaciju i nazvao je Gnutella 2. Gnutella 2 je besplatna, brza,
ima elegantno suelje i jednostavno se koristi.



Slika 4.2. Izgled aplikacije Shareaza



19

Napster
Napster je bio poznata aplikacija koju je razvio 1999. godine student Shawn Fanning kako bi
korisnici mogli besplatno razmjenjivati MP3 datoteke. Napster je svoju najveu popularnost
postigao u veljai 2001. godine. Meutim, glazbenoj industriji se takav koncept dijeljenja
njihovih proizvoda nije svidio, pa su uslijedile tube zbog kojih je Napster morao prestati s
radom 2001.godine.

eDonkey
eDonkey protokol koriste aplikacije kao to su aMule, eMule, Morpheus i Shareaza.
eMule je aplikacija za dijeljenje podataka izmeu korisnika. Jedna od glavnih prednosti ove
aplikacije je ta to ima otvoreni kod koji omoguuje programerima pridonijeti aplikaciji, inei
je efikasnijom. eMule je besplatna aplikacija koja ne koristi nikakve zlonamjerne ni reklamne
softvere.

4.2. P2P aplikacije za IM i online chat

Prema popularnosti meu korisnicima, najpopularnije aplikacije za slanje trenutanih poruka
(engl. Instant Messaging, skraeno IM) i online chat su:
Windows Live Messenger
Yahoo! Messengler
Tencent QQ.

Windows Live Messenger
Windows Live Messenger je bio najpopularniji medij za online dopisivanje. On je pruao usluge
dijeljenja podataka i razmjene poruka s vremenskom oznakom. Prvi put je uao u koritenje pod
imenom MSN Messenger i to 1999. godine, a u sadanje ime preimenovan je tek 2005. godine.
U prvoj etvrtini 2013. godine Windows Live Messenger postao je prolost za sve korisnike
(osim Kine) jer se integrirao u Skype. Sve to je bilo mogue i dostupno u Windows Live
Messengeru sada je dostupno i u Skype-u.


20


Slika 4.3. Izgled aplikacije Windows Live Messengler



ICQ
ICQ je IM klijent za slanje trenutanih poruka. Ime potjee od englleskog izraza I seek you,
to u hrvatskom prijevodu znai Traim te. Program je prvi put izaao 1996. godine, a izradio
ga je Mirabilis, izraelska tvrtka iz Tel Aviva. ICQ se neprestano nadograuje, stoga postoji
mnogo verzija programa, a uz IM funkcije, korisnicima nudi i multiplayer igre, prijenose
datoteka, audio i video komunikaciju itd.


Tencent QQ
Tencet QQ popularno poznat i kao QQ je klijent za slanje trenutanih poruka. On je
najpopularniji kineski IM klijent, a trei najpopularniji klijent u svijetu. Svojim korisnicima nudi
razne usluge ukljuujui multiplayer igre, skupni i glasovni chat, servis za preuzimanje melodija
itd.


21

4.3. P2P aplikacije za glasovnu i pisanu komunikaciju (VoIP)

VoIP (engl. Voice over Interner Protokol) je opi pojam za glasovnu i pisanu komunikaciju
preko Interneta. VoIP u uem smislu rijei predstavlja IP telefoniju jer se glas prenosi putem
Interneta od pozivatelja do odredita. IP telefonija ne koristi se nuno samo za prijenos glasa
putem Interneta, ve se koristi i za prijenos glasa i slike preko IP komunikacijskog kanala.
P2P aplikacije koje podravaju VoIP su Skype, ICQ i Windows Live Messengler.


Skype
Skype je najpopularnija aplikacija za glasovnu i pisanu komunikaciju. Danas ima preko 310
milijuna korisnika kojima doputa telefoniranje preko Interneta. Skype svojim korisnicima nudi
i mogunost prijenosa podataka, video telefoniju i video konferencije, slanje kontakata i slanje
novca na raun. Kreatori ove aplikacije su Niklas Zennstrom i Janus Friis.




Slika 4.4. Izgled korisnikog suelja aplikacije Skype



22

4.4. P2P aplikacije za multimediju

P2P aplikacije za multimediju koriste se za legalnu distribuciju softvera i multimedije. Ovaj
nain pregledavanje multimedijskog sadraja najee ukljuuje presluavanje glazbenih zapisa,
gledanje video zapisa, te gledanje televizijskih programa.
Vrsta pregledavanja multimedijskih sadraja kod P2P mrea naziva se peercasting i razlikuje se
od standardnog naina emitiranje sadraja (engl. Broadcasting) u nainu dijeljenja sadraja. U
peercastingu svaki sudionik mree koji pregledava multimedijske sadraje, alje te iste sadraje
drugim sudionicima mree. Jedne od P2P aplikacija za multimediju su Blizzard Downloader i
P2PTV.

4.5. P2P aplikacije za suradnju i grupe za raspravu

Glavni predstavnik aplikacija za suradnju i grupa za raspravu je aplikacija Microsoft Groove.
Aplikacije koje pripadaju ovoj kategoriju namijenjene su korisnicima koji rade na istom projektu
tako to im omoguava komunikaciju, laku suradnju i pregled rada drugih lanova tima, a sve u
cilju postizanja zajednikog cilja.

Microsoft Groove
Microsoft Groove je inicijalno dizajnirao Ray Ozzie,a da nas je u vlasnitvu Microsofta.
Aplikacija je bazirana na konceptu radnih okruenja (engl. workspaces) koje korisnici mogu
sami kreirati i pozivati nove korisnike. Microsoft Groove je aplikacija namijenjena korisnicima
koji rade zajedno na projektima, a esto su nedostupni (engl. offline). Osim radnih okruenja,
aplikacija se sastoji od prostora za datoteke, prostora za diskusiju te IM usluga.

23



Slika 4.5. Izgled aplikacije Microsoft Office Groove










24

5. PRINCIPI RADA P2P MREA

Funkcioniranje P2P mrea, kao i redoslijed operacija koje obavlja novi vor koji se prikljuuje u
mreu, odvija se u tri koraka:
formiranje nad-mree, odnosno otkrivanje virtualne topologije nad mree,
pretraivanje nad-mree u potrati za vorovima koji sadre eljene podatke,
prijenos korisnikih podataka izmeu vorova.

5.1. Formiranje nadmree

Pojam nad-mrea (engl. Overlay network) kod P2P mrea predstavlja virtualnu mreu vorova
ija povezanost ne ovisi o topologiji fizike raunalne mree koja ih povezuje, niti o protokolu
kojim pojedini vorovi komuniciraju. Upravljanje nad-mreama je kljuno za odravanje P2P
sustava. One esto moraju obraivati velik broj prikljuivanja i odspajanja vorova, istovremeno
osiguravajui priblino jednako ponaanje za sve vorove. Dakle, moraju biti visoko dinamine i
simetrine.
Prvi korak u stvaranju nad-mree je meusobno otkrivanje vorova koji sudjeluju u mrei.
U danas koritenim P2P mreama koristi se nekoliko naina na koji vorovi koji se prikljuuju
otkrivaju druge vorove prisutne u nad-mrei:
pomou pred-definirane liste adresa "uvijek prisutnih" vorova,
pomou pred-definirane adrese posluitelja koji sadri adrese aktivnih vorova,
dohvaanjem liste vorova ili posluitelja putem eksternih protokola (HTTP, FTP),
korisnikim unosom vora za ije postojanje korisnik doznaje na neki drugi nain,
koritenjem funkcionalnosti mrenih slojeva (TCP/IP).
Prva dva naina otvaraju mogunost onemoguavanja mree utjecanjem na kljune vorove ili
posluitelje, ali se esto koriste zbog jednostavnosti. Primjeri sustava koji koriste ovakav nain
rada su Napster i Kazaa. Kod ovakvih sustava svi vorovi su u stalnom kontaktu sa "uvijek
prisutnim" vorovima ili posluiteljima koji sadre liste aktivnih vorova.

25

Kod treeg i etvrtog naina lista dostupnih vorova i posluitelja se uva odvojeno od
klijentskih aplikacija. Na ovaj nain rade sustavi kao BitTorrent i DC++.
Samostalno otkrivanje drugih vorova koritenjem mrenih slojeva se koristi rijetko, uglavnom u
specijaliziranim rjeenjima namijenjenim koritenju u malim zatvorenim mreama.
Takoer se ponekad koristi kao pomoni nain u sluaju kad drugi koriteni naini ne uspiju
pronai pogodne vorove. Primjer ovakvog sustava je Gnutella.


5.2. Pretraivanje nad-mree

Da bi vorovi u P2P mrei uspjeno razmjenjivali informacije, one moraju biti strukturirane te
mora biti mogue uspostaviti kriterije po kojima su one pohranjene i po kojima ih se moe
pronai. Mogunosti pretraivanja uvelike ovise o nainu na koji je izvedeno formiranje nad-
mree, odnosno njenoj topologiji. Kod sustava gdje postoji sredinji posluitelj mogue je
konstantno odravati popis svih vorova koji sudjeluju u nad-mrei, to osigurava da korisniki
upit bude proslijeen do svih vorova, te da je vrijeme potrebno da svi vorovi odgovore donekle
predvidljivo. S druge strane, kod potpuno decentraliziranih P2P mrea upit se mora propagirati
nad-mreom od jednog vora preko njegovih susjednih vorova itd., te nije mogue garantirati
da e upit stii do svih vorova (npr. u sluaju ispadanja dijela vorova ili nedovoljne mrene
propusnosti), niti se moe predvidjeti vrijeme potrebno da upit obie sve vorove. Zbog toga se u
praktinim primjenama ovog tipa mrea esto uvode "posebni" vorovi koji imaju vie resursa
na raspolaganju, te su povezani sa daleko veim brojem drugih vorova. Tada "obini" vorovi
preferiraju slati upite ovim "posebnim" vorovima. Nain proglaavanja vora "posebnim" moe
biti statian (unaprijed predvien od autora sustava ili od korisnika) ili dinamian (testiranjem
pogodnosti vorova tijekom rada sustava).
Kod velikih P2P mrea, od velike je vanosti osigurati to bre pretraivanje nad-mree.
Ako su podaci jednostavnog oblika, kao to su imena datoteka i/ili kljune rijei koje ih opisuju,
mogue je koristiti vrlo efikasne tehnike zasnovane na raspodijeljenim rasprenim tablicama.



26

5.2.1. Hash tablice
Pretraivanje datoteka u P2P mrei se temelji na principu poplave upita (engl. query flooding)
ili generiranje popisa datoteka unaprijed. Distribuirane hash tablice (engl. Distributed hash table
skraeno, DHT) su predstavljene 2001. godine preko projekata Chord, Kademlia, Pastry i
Tapestry. Glavna ideja DHT tablica je smanjenje broja upita i nepotrebnog zaguenja mree koju
koristi tehnika "poplave upita" to moe rezultirati i DOS (engl. Denial of service) napadima. Za
vrijeme uspostavljanja mree generiraju se tablice usmjeravanja (engl. routing tables) te se
obnavljaju prilikom ulaska ili izlaska vora sa mree izostavljajui potrebu za protokolom
usmjeravanja (engl. routing protocol).
Dijelovi tablica u DHT mrei su rasporeeni odvojeno preko razliitih mrea. Prilikom dijeljenja
datoteke na mrei, datoteka se zapisuje u DHT tablicu te se izraunava hash vrijednost i vraa
vrijednost koja postaje identitet datoteke (ID). Datoteka je potom objavljena na voru koji
posjeduje popis hash vrijednosti i ID datoteke. Za pretraivanje specifine datoteke ili lociranja
vora se radi na principu da se dobije hash vrijednost datoteke ili vora te se poalje upit s hash
vrijednosti kao odredina adresa.
Baza podataka sadri par podataka (klju,vrijednosti):
- klju: ime filma; vrijednost: IP adresa,
- klju: ime na skype mrei; vrijednost: IP adresa.
vorovi vre pretragu baze s imenom kljua te baza vraa vrijednosti koja se slae s traenim
kljuem. vorovi mogu unijeti i par (klju,vrijednost) za vorove. Svaki klju je mapiran na
cijelobrojni broj te je svakom pojedinanom voru dodijeljen broj u istom dometu. Prostor
vrijednosti kljueva mora biti dovoljno velik tako da se kljuevi ne sudaraju. Za primjer, sha
(engl. secure hash algorithm ) je hash funkcija koja uzima niz znakova i generira klju od 128
bita (2
128
) to je veliki raspon vrijednosti.

5.3. Prijenos podataka izmeu vorova

vorovi u P2P mreama uspostavljaju izravnu vezu meu sobom te razmjenjuju podatke
koristei TCP (engl. Transmission Control Protocol, protokol kontrole prijenosa) i UDP (User
Datagram Protocol, protokol kratkih korisnikih poruka) protokol.


27

5.3.1. TCP protokol
TCP protokol je protokol prijenosne razine TCP/IP komunikacijskog modela. To je pouzdan
protokol koji podatke tretira kao kontinuirani slijed, a ne kao skup meusobno neovisnih poruka,
te jami isporuku podataka na odredite. TCP je spojevni protokol, to znai da uspostavlja
logiku vezu ili virtualni kanal izmeu dva krajnja ureaja. Osim toga, TCP prua i mogunost
viestrukih istovremenih konekcija prema jednoj aplikaciji na jednom domainu od strane vie
klijenata. Pouzdanost protokola je osigurana tako da se za svaki poslani segment oekuje potvrda
prijema. Ako nakon isteka odreenog vremenskog intervala potvrda ne stigne, ili stigne
informacija o greki u primljenim podacima, prijenos se ponavlja sve dok ne stigne pozitivna
potvrda prijema.

5.3.2. UDP protokol
UDP protokol je takoer protokol prijenosne razine, ali je jednostavniji od TCP protokola jer ne
vodi rauna o izgubljenim paketima, te hoe li paketi stii istim redoslijedom kojim su poslani.
Zbog toga UDP paketi imaju znatno manje zaglavlje.
Postoji nekoliko sluajeva kada se za prijenos koristi UDP umjesto TCP protokola:
kada je potrebno poslati manji blok podataka, veliine jednog paketa, pa je
jednostavnije i bre prenositi samo podatke (uz UDP zaglavlje), bez dodatnih kontrola,
a u sluaju pogrenog prijema poslati ponovno,
za slanje upita jednog vora drugom, uz ponavljanje upita ako odgovor ne stigne nakon
isteka odreenog vremenskog intervala; na upit se takoer moe odgovoriti primjenom
UDP protokola,
za prijenos podataka aplikacija koje imaju vlastite tehnike osiguravanja pouzdanog
prijenosa, ili su manji gubici dozvoljeni.






28

6. POHRANA PODATAKA NA P2P MREAMA

vorovi na Internetu surauju na principu tako da je svaki vor je potroa i proizvoa
podataka. vorovi ele pohraniti podatke na P2P mrei iz vie razloga:
pohrana lokalnih podataka,
sinkronizacija podataka izmeu vie raunala ili
dijeljenje datoteka s drugim vorovima.
Iz perspektive jednog vora u P2P mrei, P2P proces pohrane replicira lokalne podatke na
vorovima, a zauzvrat prima podatke od vorova za daljnju upotrebu od strane tih vorova (Slika
6.1.). Lokalni podaci mogu biti spremljeni u drugim vorovima te kad jedan ili vie vorova
napusti mreu, podatci e jo biti dostupni na jednom od preostalih vorova. Jednom kad se
podaci distribuiraju preko vorova, potrebno je izvriti odravanje redovitom provjerom koliko
je vorova dostupno i koliko od njih posjeduje podatke koji su zatraeni za pohranu. Ovisno o
stopi naputanja razina redundantnosti se smanjuje te se mora popraviti redistribucijom dijelova
originalnih podataka na nove vorove.





Slika 6.1. Metoda pohrane podataka



p2p storage process
local data
storage
peer data
storage

29

6.1. Redundantnost podataka

P2P mrea moe rasti ili se smanjivati razliitom dinamikom. U nekim sluajevima, vorovi
naputaju mreu velikom brzinom dok u drugom sluaju vrlo sporo. Isto tako u nekim mreama
vorovi rade u izvan mrenom radu neko vrijeme bez da kompletno napuste mreu. Stopa po
kojoj vorovi naputaju i pristupaju mrei se zove stopa naputanja (engl. churn rate). esta
nuspojava redundantne pohrane podataka na vorove je disperzija podataka na geografski
dislocirane vorove. Efekt smanjuje rizik gubitka podatka u sluaju poara ili prirodnih
katastrofa.

Razina redundancije odreuje minimalni dio (vorova koji pohranjuju podatke) koji je potreban
da bi se podaci uspjeno vratili u izvornom obliku. Visoka redundantnost rezultira minimalnim
dijelom za vraanje izvorne datoteke, ali vri veu potronju mrene propusnosti isti podatak
mora bit spremljen na vie vorova i prilikom uploada svaki vor mora primiti svoj dio.
Razina redundantnosti zahtijeva puno prostora na disku (na lokalnom voru) te korisnici P2P
mree moraju uvijek balansirati razinu redundancije s koliinom mrenog prometa potrebnog za
pohranu podataka. Mree s visokom dinamikom zahtijevaju vie mrenih resursa za odravanje
odreene razine redundantnosti.

6.2. Brisanje oznaka (engl. erasure codes)

Redundantnost se moe postii replikacijom podataka na vie vorova. U kasnijoj fazi,
mogunost da je vor dio mree nije velika pa replikacija zahtijeva distribuciju podataka na
odreeni broj vorova da bi se garantirao pronalazak traenog podatka.

Druga metoda za postizanje redundancije je brisanje oznaka na podacima. U teoriji informacija
brisane oznake se koriste kao ispravak greaka koje se akumuliraju prilikom prijenosa podataka.
Originalni podaci su kodirani u due poruke tako da je na odreditu samo dio podataka potreban
za kompletnu rekonstrukciju.


30



Slika 6.2. Faze stanja podataka prilikom pohrane i vraanja podataka u P2P mrei

Kada se primjenjuje tehnika brisanja, oznaka na skladite podataka datoteka je podijeljena u k
dijelova i kodirana u n fragmenata, gdje je k<n i veliina fragmenta konstantna. Omjer n/k
pokazuje koliko je jo dodatnog prostora potrebno usporeujui s originalnom veliinom
datoteke. Glavna znaajka tehnike brisanja oznaka je da je bilo koji k dio potreban da bi se
vratila izvorna datoteka. Odmah se moe primijetiti prednost u odnosu na standardnu
redundanciju podataka te je spomenuta tehnika rairena meu P2P mreama.

Da bi se pokazala razlika izmeu koritenja replikacije i tehnike brisanja oznaka prikazana je
P2P mrea od 10000 vorova od kojih je 10% u izvan mrenom radu, te razina replikacije 2
(datoteka zauzima svoju duplu veliinu na skladitima podataka u P2P vorovima). U tom
sluaju, mogunost da je barem jedna od dvije kopije dostupna je 0.99. Kada se fragmentira
originalna datoteka u 8 dijelova (pohranjena od 16 dijelova u n vorova) mogunost pronalazaka
najmanje 8 dijelova je 0.99994.






Original file
Redundant fragments (n = 6)
Fragments stored at peers
Loss of fragments due to peer
churn or temporal unavailability
Remaining fragments
stored at peers
Retrieved fragments ( k)
Original file
Encode
Upload to peers
Download from peers
Decode and join
Split
Fragments (k = 3)

31

6.3. Asimetrino itanje i pisanje podataka

Novi podaci na jednom od vorova se moraju redundantno pohraniti na ostalim, to zahtijeva
upload dijelova ili kopiju podataka na vie vorova. Prilikom vraanja podataka itajui s
vorova, samo se mali dio podataka treba preuzeti s vorova koji su dio mree to ini itanje i
pisanje asimetrinim zbog toga to koliina podataka za pisanje je vea od onih za itanje.

Ovakav princip nije nikako u skladu s ADSL (engl. Asymmetric Digital Subscriber Line)
mreama koju posjeduje veina korisnika gdje je download puno vei od upload-a. Drugim
rijeima, itanje podataka je vrlo brzo to olakava vraanje izvornih podataka u sluaju gubitka
originala. Meutim, limitirani upload kapacitet uzrokuje potekoe kada se na vorove koji su
dio mree eli spremiti velika koliina podataka u malom vremenu. Za upload kapacitet od 2
Mbit/s i datoteku veliine 500Gb potrebno je 23 dana da bi se podaci u potpunosti prebacili na
vorove koji su dio mree bez redundancije.


6.4. Kvota i pravedna razmjena podataka

U velikim P2P mreama, vorovi doprinose razliitim koliinama resursa (diskovni prostor i
mrena propusnost) te zauzvrat oekuju primanje iste koliine podataka. To znai da se mora
implementirati mehanizam koji osigurava pravednu razmjenu podataka. Ako P2P omoguava da
pojedini korisnici primaju veliku koliinu podataka, a za uzvrat ne daju nita, mrea brzo gubi
na vrijednosti.
Velike P2P mree koriste razne mehanizme za primjenu pravedne razmjene podataka za
pojedinane vorove. Jedno od rjeenja je da vorovi nadziru jedni druge te kazne vor koji ne
potuje pravila brisanjem podataka. Uz diskovni prostor i mrenu propusnost, takoer je vano
vrijeme trajanja pripadnosti mrei - ako je vor dio mree mali dio vremena njegovi resursi su
neiskoristivi zbog toga to im drugi vorovi ne mogu pristupiti.




32


6.5. Klasifikacija proizvoda za pohranu podataka

P2P tehnologije koje se koriste za razne tipove potreba za pohranom podatka su:
Pohrana. Koritenjem ovog servisa podaci s lokalnog raunala se pohranjuju na drugo
mjesto u lokalnoj mrei to ukljuuje konstantno praenje verzija datoteka i promjene
tijekom vremena.
Sinkronizacija podataka. Odravajui istu listu datoteka na razliitim raunalima
podrazumijeva sinkronizaciju. Kada se jedna datoteka na raunalu izmjeni, kopija te
datoteke se automatski obnavlja na drugim raunalima. Ovaj tip funkcionalnosti se
mora suoiti s problemom u sluaju da se ista datoteka promjeni u isto vrijeme na
razliitim raunalima.
Distribuirani datoteni sustav. Skladini online kapaciteti u P2P mreama se koriste za
implementaciju distribuiranog datotenog sustava. Jedan ili vie raunala pristupaju
pohrani na nain koji je vrlo slian lokalnom datotenom sustavu. Aplikacija na
raunalu moe pristupiti podacima na udaljenom raunalu kao da se nalaze na
lokalnom.
Dijeljenje sadraja. Dijelovi liste datoteka koji su pohranjeni online se koriste za
dijeljenje datoteka s drugim osobama. Pruajui akreditaciju drugim osobama, oni
mogu koristiti P2P mreu za itanje dijela liste podataka za koji imaju pristup.




33

7. SIGURNOST P2P MREA

Sigurnost je kljuna komponenta svakog raunalnog sustava, a posebno P2P mrea.
U dananjem vremenu nitko ne razmilja puno o potrebi sigurnosne zatite pri upotrebi P2P
aplikacija. Meutim, razni primjeri u prolosti pokazali su da su razne financijske prevare dovele
P2P sustav pod povealo kad je u pitanju sigurnost podataka. Slika 7.1. ilustrira sigurnosne rupe
prilikom koritenja P2P aplikacija. Moe se lako uvidjeti kako P2P aplikacija ugroava sigurnost
sigurne mree opremljene vatrozidom (engl. firewall).


Slika 7.1. Mrea opremljena vatrozidom


Glavni aspekti sigurnosti su kontrola konekcije (engl. connection control), kontrola pristupa
(engl. Access control), kontrola prometa (engl. operation control), anti-virusna zatita i zatita
podataka na osobnim raunalima.

7.1. Vanjske sigurnosne prijetnje

P2P mreni promet omoguava da mrea bude otvorena za razne oblike napada, pijunau i
zlonamjerno koritenja osobnih podataka. Aplikacije kao to su Napster i Kazaa omoguavaju
zaposlenicima skidanje raznih datoteka to predstavlja viestruki problem korporacijskim

34

mreama kao to su koritenje skupe mrene propusnosti i podlonosti napadima virusa putem
inficiranih preuzetih datoteka.

Naalost, P2P mrea zaobilazi sigurnost korporativne mree pruajui decentraliziranu
administraciju, zajedniku pohranu podataka, kao i nain da zaobie kritine stupove obrane kao
to je vatrozid i NAT (engl. Network Address Translation) ureaj.

7.1.1. Raunalni virusi i crvi
U P2P mrei virusi i crvi se najee predstavljaju korisnicima kao korisni programi. Korisnici
tako prevareni preuzimaju te programe i dovode u opasnost svoje raunalo. Virusi su
zlonamjerni programi koji se zapisuju na tvrdi disk raunala i koji mogu zaraziti druge programe,
modificirajui ih tako da ukljue novu kopiju. Crvi su takoer zlonamjerni programi koji ire
svoje funkcionalne kopije na druga raunala. Slue se raunalnim mreama, ali se se ne spajaju
parazitski sa drugim programima.
Posebni tipovi virusa i crva koji se javljaju samo u P2P mreama, najee na eDonkey mrei su
Swen, Fizzer, Lirva, Benjamin, KwBot, itd.

7.1.2. Backdoor pristup
Ako korisnik pokrene P2P aplikaciju, a zatim provjeri elektroniku potu, napada moe to
iskoristi kao stranja vrata napad (engl. backdoor, doputa neautorizirani pristup sustavu) kako
bi pristupio korporativnoj lokalnoj mrei.

7.1.3. Nezatiene poruke
Aplikacije za slanje poruka poput AOL, Microsoft i Yahoo, takoer predstavljaju prijetnju
informacijskog drutva. Ako su te aplikacije koriste za razmjenu osjetljivih informacija, napada
moe proitati sve poruke pomou programa za nadzor mree. Takvi programi su razvijeni i
pojaani s novim mogunostima poput glasovnih poruka i dijeljenja datoteka ime se moe
ugroziti sigurnost.




35


7.1.4. Povjerljivost
Kazaa i Gnutella doputaju svim klijentima izravan pristup datotekama koje su pohranjene na
korisnikovom disku. Postoji mogunost da napada dozna koji tip operacijskog sustava vor
posjeduje te pristupiti tajno dijeljenim datotekama.

7.2. Sigurnosni mehanizmi
Jedan od najveih problema P2P mrea je neogranien i nekontrolirani pristup korisnicima
mree. Iz ovog razloga mnogi P2P programi koriste sigurnosne mehanizme kao to su
tehnike tajnog kljua,
tehnika javnog kljua,
tehnika parova asimetrinih kljueva.


7.2.1. Tehnike tajnog kljua
Tehnika tajnog kljua je zasnovana na injenici da poiljatelj i primatelj dijele zajedniki tajni
klju koji se koristi za razne kriptografske tehnike kao to je ifriranje i deifriranje poruka te
stvaranje i verifikacija podataka. Tajni klju se mora izmijeniti posebnom procedurom prije
razmjene podataka.

7.2.2. Tehnika javnog kljua
Tehnika javnog kljua je zasnovana na koritenju parova asimetrinih kljueva. Obino jedan
korisnik posjeduje jedan par kljueva. Jedan dio je dostupan javno, dok je drugi dio privatan.
Zbog toga to je javni dio kljua dostupan nije potrebna razmjena kljueva, ali je potrebna
infrastruktura za distribuciju kljua. Poto nema potrebe za dijeljenje tajnog kljua prije
komunikacije ova tehnika je idealna za uspostavljanje sigurne komunikacije izmeu osoba koji
se ne poznaju.

7.2.3. Asimetrini parovi kljueva
Za razliku od glavnog kljua koji otkljuava vrata te omoguava osobi da zakljua i otkljua

36

vrata po elji, javni klju koji se koristi u kriptografiji je asimetrian. To znai da javni klju
moe samo zakljuati vrata te ih nije u mogunosti otkljuati.

7.3. Budunost sigurnosti P2P mrena

Konstantno gorua tema za P2P sigurnost je povjerenje. Povjerenje u korisnike s kojima se
komunicira i povjerenje u proizvoae programske podrke koji nas opskrbljuju s potrebnim
aplikacijama.
Jedna od zanimljivih ideja je da korisnici dobivaju povjerenje u P2P zajednici preko
jedinstvenog digitalnog potpisa kao to je IP adresa, ali ne po raunalu ve korisniku. Za
pojedinani digitalni potpis bi se vezala razina povjerenja koja bi varirala od 0 do 20. Ovisno o
ponaanju korisnika u prolosti, njihova razina sigurnosti se poveava ili smanjuje.
Predloeni plan je da se razina povjerenja u poetku postavi na nisku razinu ime bi se sprijeili
nepoeljni korisnici koji bi kreirali nove profile i dobili veliku razinu povjerenja odmah u
poetku. Korisnici bi trebali biti aktivni na mrei neko vrijeme prije nego bi se poveala razina
povjerenja. Isto tako korisnik bi mogao pohraniti podatke ostalih poznatih korisnika s kojima bi
htjeli dijeliti lokalnu razinu povjerenja.
Ovaj prijedlog ima mnogo prepreka te je samo ideja koja se treba razvijati. Glavna prednost je u
tome to nema centralnog autoriteta ve su to sami korisnici. Ako javna mrea eli sniziti razinu
povjerenja korisnika on/ona e izgubiti kredibilitet i biti odbaena od strane drugih korisnika.
Ideja isto tako nagrauje prave korisnike za njihove doprinose i primjereno ponaanje na javnoj
mrei.

7.3.1. Biometrika
Biometrika ukljuuje korisnikove jedinstvene osobine u cilju autentifikacije. Osobine koje se
najee koriste kod osobe je slika lica, potpis, otisak prsta ili uzorak mrenice. Jedna kljuna
znaajka biometrije je da korisnik vie ne treba pamtiti zaporke ili pohraniti sve kljune podatke,
to je glavna slabost u konvencionalnim sustavima autentifikacije. Tehnologija moe imati jaku
implementaciju u integraciji s drugim sigurnosnim tehnikama kao to su prethodno opisani
kriptografski certifikati. Mnogi strunjaci vide budunost biometrike koja bi igrala kljunu ulogu
u omoguavanju implementacije infrastrukture javnog kljua titei javne i privatne kljueve u
tehnologiji pametnih kartica.

37

8. PRAKTINI RAD
8.1. Uvod

U ovom praktinom radu je jednostavnom aplikacijom za komunikaciju izmeu korisnika
prikazan jedan od naina upotrebe P2P mrea.
Aplikacija je izraena Microsoft-ovim alatom Visual Studio 2010, a izvorni kod je napisan u
programskom jeziku C#. Sastoji se od jedinstvenog Visual Studio rjeenja koje sadri dva
projekta. Prvi projekt definira grafiko suelje, a drugi logiku aplikacije te mrenu
funkcionalnost.


8.2. Grafiko suelje

Za izradu grafikog suelja koriten je WPF (Windows Presentation Foundation), skup datoteka
koji osigurava sve grafike elemente aplikacije (prozore, tekstualna polja,...) te upravlja
interakcijom korisnika s aplikacijom (tipkanje na tastaturi, upravljanje miem).
Prilikom pokretanja Visual Studio 2010 izabere se File->New->Project, pa WPF Application
predloak. Za ime projekta izabrano je ime SimpleChatUI unutar novog rjeenja imena
SimpleChat.




38


Slika 8.1. Kreiranje novog projekta SimpleChatUI


WPF aplikacijski predloak e otvoriti alat za razvoj grafikog suelja (engl. Graphical User
Interface, skraeno GUI). Glavni prozor aplikacije e biti automatski generiran, kao i
MainWindow.xaml, datoteka XML formata koja definira raspored i svojstva GUI elemenata.
GUI se sastoji od glavnog prozora unutar kojeg su dva tekstualna okvira: u jednom e se
prikazivati poruke koje korisnici alju, a drugo e sluiti za pisanje samih poruka.

Da bi se dodali tekstualni okvir, pritisne se Toolbox tab na lijevoj strani ekrana, ime se proiri
pregled GUI elemenata, te se dovuku dva tekstualna okvira na glavni prozor.



39


Slika 8.2. Dodavanje tekstualnih okvira

U XAML ureivakom suelju, u donjem dijelu ekranu prilagodi se veliina, smjetaj i imena
GUI elemenata mijenjajui XAML kod:

MainWindow.xaml:

<Window x:Class="SimpleChatUI.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Simple Chat" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="35*"/>
<RowDefinition Height="35"/>
</Grid.RowDefinitions>
<TextBox HorizontalAlignment="Stretch" Margin="6,6,6,6" Name="chatDisplayTextBox"
VerticalAlignment="Stretch" Width="Auto" Height="Auto" Grid.Row="0"/>
<TextBox Height="23" HorizontalAlignment="Stretch" Margin="6,6,6,6"
Name="entryFieldTextBox" VerticalAlignment="Stretch" Width="Auto" Grid.Row="1"
KeyDown="entryFieldKeyDown"/>

40

</Grid>
</Window>

Kod 1. MainWindow.xaml

Kod upisivanja koda moe se primijetiti da suelje Visual Studio pomae u odabiru kljunih
rijei. Primjerice, polja kao to su HorizontalAlignment imaju konaan broj vrijednosti koje se
mogu izabrati. Isto tako postoji pred-odreeni niz dogaaja na koje tekstualni okvir odgovara.
Izabran je dogaaj KeyDown na entryFieldTextBox okviru. Tu se navodi metoda koja se
izvrava kad se pritisne neka tipka na tipkovnici dok je fokus na tom polju. U samoj metodi se
provjerava je li korisnik pritisnuo tipku "Enter", kojom se alje poruka.
Nakon ureivanja MainWindow.xanl izabere se MainWindow.xaml.cs tabulator ime se dolazi
do izvornog koda iza grafikog suelja.


Slika 8.3. Prva verzija P2P aplikacije


Nakon to se aplikacija uspjeno pokrenula, zaustavi se pritiskom na shift-F5.
Do sada klasa MainWindow sadri tri metode: Glavni konstruktor (MainWindow),
textBoxEntryField_KeyDown - rukovoditelj dogaajima te DisplayMessage - metodu za prikaz
teksta. Isto tako definirana je jedna varijabla mChatService kojom e se instancirati objekt koji

41

upravlja funkcionalnou pozadine.

8.3. Pozadinska komunikacija

U Solution Exploreru , desnim klikom na Solution SimpleChat odabere se Add-New
Project->Class Library naziva ChatService.


Slika 8.4. Dodavanje novog projekta

Projekt e sadravati cijeli komunikacijski kod koristei jedan od postojeih WCF predloaka
umjesto generikih C# klasa. Kod se sastoji od dvije C# datoteke: ChatServiceInterface suelja
koji definira skup metoda pozadinske komunikacije, te ChatService klasa koja sadri kod za te
metode. Prvi korak je kreiranje suelja desnim klikom mia na ChatService i odabira Add-
>New Item->Interface naziva ChatServiceInterface.cs.



42


Slika 8.5. Dodavanje suelja ChatServiceInterface

Prije pisanja koda za ChatServiceInterface.cs potrebno je dodati reference. Koristei WCF
datoteke doda se referenca na System.ServiceModel i Sytem.RunTime.Serilization. U Solution
suelju, desnim klikom na References vor kod ChatService projekta otvori se izbornik u kojem
se odabere Add Reference te se dodaju gore spomenute dvije reference.
U kodu je definirano da bilo koja klasa koja koristi ChatServiceInterface suelje mora definirati
dvije metode: DisplayMessage i SendMessage. DisplayMessage metoda se poziva preko
udaljenog raunala od strane korisnika s kojim se komunicira. Koristi se Send Message metoda
za pozivanje DisplayMessage metode.

DisplayMessage metoda nee vraati vrijednosti te je u biti jednosmjerni komunikacijski
mehanizam (poruka se moe poslati, ali to ne znai da e na istu uvijek biti odgovoreno).
U ovoj datoteci definirana je klasa CompositeType koja je u mogunosti pohraniti dvije
vrijednosti (korisniko ime i poruku), te e definirati da DisplayMessage metodi pri pozivanju
mora biti proslijeen parametar tipa CompositeType.

Na kraju se definira delegat DisplayMessageDelegate koji pomae da se odvoji kod grafikog

43

suelja od aplikacijske logike i komunikacijskog koda. Ideja je da e grafiko suelje posjedovati
mehanizam za prikaz poruka na ekranu, ali pozadina nee imati uvid u detalje izvedbe. Kada se
aplikacija pokrene, grafiki kod e koristiti delegat da bi poslao upravljaku funkciju pozadini,
koja se moe pozvati samo kad pozadina eli da grafiko suelje prikae poruku korisniku:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.Runtime.Serialization;

namespace ChatService
{

[ServiceContract]
public interface ChatServiceInterface
{
[OperationContract(IsOneWay = true)]
void DisplayMessage(CompositeType messageParams);
void SendMessage(string messageText);
}


[DataContract]
public class CompositeType
{
private string mUserName;
private string mMessage;

//konstruktor bez parametara, inicijalizira mUserName i mMesage
public CompositeType()
{

44

mUserName = "(bez imena)";
mMessage = "";
}

//konstruktor s parametrima, postavlja mUserName i mMesage na zadane vrijednosti
public CompositeType(string user, string message)
{
mUserName = user;
mMessage = message;
}

[DataMember]
public string userName
{
get { return mUserName; }
set { mUserName = value; }
}

[DataMember]
public string message
{
get { return mMessage; }
set { mMessage = value; }
}

}

public delegate void DisplayMessgeDelegate(CompositeType data);

}

Kod 2. ChatSericeInterface.cs


45


Slijedei korak je kreiranje implementacijskog koda za ChatService. Kada je kreiran ChatService
projekt, generirala se prazna Class1.cs datoteka koju se preimenuje u ChatService.cs.
ChatService klasa posjeduje slijedee metode:

1) DisplayMessage() metoda koju poziva DisplayMessageDelegate.
2) SendMessage() metoda koristi komunikacijski kanal za pozivanje DisplayMessage()
Metode.
3) StartService() metoda za uspostavljanje komunikacijskog kanala.
4) StopService() metoda koja zatvara komunikacijski kanal.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace ChatService
{
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class ChatService : ChatServiceInterface
{
DisplayMessgeDelegate mDisplayMessageDeledate = null;
private string mUserName = "(bez imena)";
private ServiceHost mHost = null;
private ChannelFactory<ChatServiceInterface> mChannelFactory = null;
private ChatServiceInterface mChannel;

private ChatService() { }
public ChatService(DisplayMessgeDelegate dmd)
{
mDisplayMessageDeledate = dmd;

46

StartService();
}

~ChatService(){
StopService()
}
private void StartService()
{
mHost = new ServiceHost(this);
mHost.Open();
mChannelFactory = new
ChannelFactory<ChatServiceInterface>("SimpleChatEndpoint");
mChannel = mChannelFactory.CreateChannel();
mChannel.DisplayMessage(new CompositeType("Dogaaj", mUserName + " se
pridruio razgovoru."));
mDisplayMessageDeledate(new CompositeType("Info", "Da bi promijenili ime, upiite
\"ime: NOVO_IME\""));
}

private void StopService()
{
if (mHost != null)
{
mChannel.DisplayMessage(new CompositeType("Dogaaj", mUserName + " je
napustio razgovor."));
if (mHost.State != CommunicationState.Closed)
{
mChannelFactory.Close();
mHost.Close();
}
}
}

public void DisplayMessage(CompositeType messageParams)

47

{
if (messageParams == null) throw new ArgumentNullException("messageParams");
if (mDisplayMessageDeledate != null) mDisplayMessageDeledate(messageParams);
}

public void SendMessage(string messageText)
{
if (messageText.StartsWith("ime:", StringComparison.OrdinalIgnoreCase))
{
mUserName = messageText.Substring(4).Trim();
mDisplayMessageDeledate(new CompositeType("Dogaaj", "Promijenili ste ime u \""
+ mUserName + "\""));
}
else
{
mChannel.DisplayMessage(new CompositeType(mUserName, messageText));
}
}
}
}

Kod 3. ChatService.cs


Grafiko suelje sadri kod koji e instancirati ChatService objekt i pozivati njegove metode. Da
bi to bilo mogue, SimpleChatUI projekt mora imati referencu na ChatService projekt.
Referenca se doda desnim klikom na References tab pod ChatGUI projektom, te se odabere
Add Reference.. te u Projekt prozoru odabere se ChatService.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

48

using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace SimpleChatUI
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private ChatService.ChatService mChatService;

public MainWindow()
{
InitializeComponent();
mChatService = new ChatService.ChatService(this.DisplayMessage);
}

public void DisplayMessage(ChatService.CompositeType messageParams)
{
string userName = messageParams.userName == null ? "" : messageParams.userName;
string messageText = messageParams.message == null ? "" : messageParams.message;
chatDisplayTextBox.Text += (userName + ": " + messageText + Environment.NewLine);
}

public void entryFieldKeyDown(object sender, KeyEventArgs e)

49

{
if (e.Key == Key.Return || e.Key == Key.Enter)
{
mChatService.SendMessage(entryFieldTextBox.Text);
entryFieldTextBox.Clear();
}
}
}
}
Kod 4. MainWindow.xaml.cs
8.4. WCF konfiguracijska datoteka

Zadnji dio koda obuhvaa WCF konfiguracijsku datoteku koja se kreira odabirom na Tools >
WCF Service Configuration Editor. Opcija e pokrenuti konfiguracijski editor u novom
prozoru. Izabere se File-> New Config da bi se kreirala prazna konfiguracija koja bi trebala
izgledati kako je prikazano na slici 8.6.


50


Slika 8.6. WCF konfiguracijski izbornik


S desne strane izbornika izabere se Create a New Service. Service Type treba biti
ChatService.ChatService. Service contract treba biti ChatService.ChatServiceInterface.
Izabere se Peer to Peer kao komunikacijski mod. Adresa pozadine treba biti
net.p2p://SimpleChat.


51



Slika 8.7.Osnovni konfiguracijski parametri



52


Slika 8.8. Konfiguracijski parametri servisa

Odabere se Endpoint: (Empty Name) i postavi ime SimpleChatEndpoint. U nastavku se
pohrani aplikacija i kreira klijent. S obzirom da je ovo P2P aplikacija, ona djeluje istovremeno
kao klijent i posluitelj. U lijevom dijelu se odabere Client, te u desnom dijelu Create a New
Client. S obzirom da je potrebno kreirati klijenta koji ovisi o konfiguraciji servisa koji je kreiran
u polju Generate a client config from the config of the service, potrebno je pronai istu
konfiguracijsku datoteku u koju je pohranjen servis te pritisnuti Next.


53


Slika 8.9. Konfiguracija klijentskih parametara

Izabere se opcija Bindings na lijevoj strani te Create New Binding i netPeerTcpBinding,
Promijeni se ime konfiguracije u unsecure zbog toga to e se pokrenuti nesigurna
komunikacija. Na Security tabu izabrati mod: None. Potom se u lijevom dijelu izabere
unsecured->resolver. Odabere se resolver i promjeni Mode u Pnrp. Odabere se Services-
>ChatService.ChatService->EndPoints->SimpleChatEndpoint u lijevom dijelu te podesi
BindingConfiguration u unsecure.

Isto se napravi za Client > Endpoints > SimpleChatEndpoint > BindingConfiguration.
Pohrani se i zatvori konfiguracijski prozor. U Solution Exploreru, desni klik na SimpleChatUI
projekt i Add Existing Item te se doda App.config. Odabere se App.config datoteka te provjeri je
li ispravno kreirana:



54

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<netPeerTcpBinding>
<binding name="unsecure">
<resolver mode="Pnrp" />
<security mode="None">
<transport credentialType="Password" />
</security>
</binding>
</netPeerTcpBinding>
</bindings>
<client>
<endpoint address="net.p2p://SimpleChat" binding="netPeerTcpBinding"
bindingConfiguration="unsecure" contract="ChatService.ChatServiceInterface"
name="ChatEndpoint" kind="" endpointConfiguration="">
<identity>
<dns value=TempCert/>
<certificateReference storeName="My" storeLocation="LocalMachine"
x509FindType="FindBySubjectDistinguishedName" />
</identity>
</endpoint>
</client>
<services>
<service name="ChatService.ChatService">
<endpoint address="net.p2p://SimpleChat" binding="netPeerTcpBinding"
bindingConfiguration="unsecure" name="Chat"
contract="ChatService.ChatServiceInterface" />
<identity>
<dns value=localhost/>
<certificateReference storeLocation="CurrentUser "/>


55

</identity>
</endpoint>
</service>
</services>
</system.serviceModel>
</configuration>
Kod 5.App.config

Pokrene se program te dozvoli servisu koritenje definiranog porta:



Slika 8.10. Otvaranje mrenog porta za rad servisa

Odabere se Allow Access te se pokrenu dvije instance aplikacije.


56



Slika 8.11. Prva P2P aplikacija



Slika 8.12. Druga P2P aplikacija


57

9. ZAKLJUAK

U P2P mreama, svi klijenti opskrbljuju mreu raznim resursima to moe ukljuivati
propusnost, diskovni prostor i raunalnu snagu. Kako se broj vorova poveava raste
kompleksnost sustava te kapacitet. To se ne odnosi na klasinu klijent-posluitelj arhitekturu
koja ima fiksni broj posluitelja ime bi vei broj klijenata znatno usporio prijenos podataka za
sve korisnike.

Distribuirana priroda P2P mrea isto tako poveava robusnost doputajui vorovima pronalazak
traenih podataka bez uplitanja centralnog posluitelja te ne postoji jedna toka kvara u sustavu.
Lako je instalirati i izvriti konfiguraciju na raunalu pa nije potreban sistem administrator za
odravanje mree te korisnik moe sam upravljati svojim dijeljenim resursima.

Kao i u mnogim drugim mrenim sustavima, nesigurni i nepotpisani raunalni kod moe
dopustiti pristup korisnikovim podacima s udaljenog raunala te ugroziti sigurnost kompletne
lokalne mree. Meutim, P2P mree danas su implementirale mnoge sigurnosne zatitne
mehanizme. Jedan od glavnih nedostataka je nepostojanje centralne pohrane podataka.

Koritenje modernih hash funkcija i razliite metode ifriranja uinile su mnoge mree otpornim
na bilo kakve vrste napada, tako da su i glavni dijelovi mree zamijenjeni s lanim i
nefunkcionalnim raunalima. Obino, Internet provideri nisu skloni P2P korisnicima zbog toga
to poveavaju promet u mrei. Usporeujui promet s pregledavanjem Internet stranica,
elektronike pote i drugim obinim radnjama gdje se podaci prenose u kratkim intervalima i
koliinama, P2P koristi puno resursa u puno vremena optereujui propusnost mree. Mogue
rjeenje se nalazi u P2P meuspremniku, gdje Internet provider pohranjuje dijelove datoteka
koje se najvie koriste.

P2P mree su ponekad kvalitetno i jeftino rjeenje za spajanje raunala, ali imaju dosta
nedostatka te svaka organizacija treba s oprezom razmotriti sigurnosne probleme,
nekompatibilnosti sklopovlja i pohranu podataka prije uvoenja P2P mree.



58

10. LITERATURA
1. Kaufmann, V. P2P Networking and Applications , Morgan Kaufmann, USA 2008.
2. Lupu. M. Peer-to-Peer Computing Principles and Applications,Springer, USA 2010.
3. Muthusamy, V. An Introduction to Peer-to-Peer Networks , Vinod Muthusamy, USA
2003.
4. Mitchell, B. Introduction to Peer to Peer (P2P) Networks and Software Systems ,
http://compnetworking.about.com/od/p2ppeertopeer/a/p2pintroduction.htm 15.8.2013.
5. Carnet,Peer to peer mree, UR1:http://www.cert.hr/sites/default/files/NCERT-
PUBDOC-2009-11-282.pdf, 21.9.2013.
6. Gong.Y:Identifying P2P users using traffic analysis, URL2:
http://www.symantec.com/connect/articles/identifying-p2p-users-using-traffic-analysis,
20.8.2013.
7. Pedemors, V. Peer-to-Peer Storage , ACM, USA 2009.
8. Wallach,D: A Survey of Peer-to-Peer Security Issues, In Proceedings of the
International Symposium on Software Security, Springer-Verlag, Berlin 2002.
9. Oram,A: Peer-to-Peer: Harnessing the Power of Disruptive Technologies, O'Reilly
Media, USA 2001.
10. URL3: http://blogs.msdn.com/b/theothersteve/archive/2010/04/19/how-to-create-a-peer-
to-peer-chat-application-using-wpf-and-wcf-in-visual-studio-2010.aspx.

Você também pode gostar