<<

SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE VARAŽDIN

Tedo Vrbanec

SIMULACIJSKI ALATI I NJIHOVA OGRANIČENJA PRI ANALIZI I UNAPREĐENJU RADA MREŽA ISTOVRSNIH ENTITETA

MAGISTARSKI RAD

Varaždin, 2010. PODACI O MAGISTARSKOM RADU I. AUTOR

Ime i prezime Tedo Vrbanec Datum i mjesto rođenja 7. travanj 1969., Čakovec Naziv fakulteta i datum diplomiranja Fakultet organizacije i informatike, 10. listopad 2001. Sadašnje zaposlenje Učiteljski fakultet Zagreb – Odsjek u Čakovcu

II. MAGISTARSKI RAD

Simulacijski alati i njihova ograničenja pri analizi i Naslov unapređenju rada mreža istovrsnih entiteta Broj stranica, slika, tablica, priloga, XIV + 181 + XXXVIII stranica, 53 slike, 18 tablica, 3 bibliografskih podataka priloga, 288 bibliografskih podataka Znanstveno područje, smjer i disciplina iz koje Područje: Informacijske znanosti je postignut akademski stupanj Smjer: Informacijski sustavi

Mentor Prof. dr. sc. Željko Hutinski

Sumentor Prof. dr. sc. Vesna Dušak

Fakultet na kojem je rad obranjen Fakultet organizacije i informatike Varaždin

Oznaka i redni broj rada

III. OCJENA I OBRANA

Datum prihvaćanja teme od Znanstveno- 17. lipanj 2008. nastavnog vijeća

Datum predaje rada 9. travanj 2010.

Datum sjednice ZNV-a na kojoj je prihvaćena 18. svibanj 2010. pozitivna ocjena rada Prof. dr. sc. Neven Vrček, predsjednik Sastav Povjerenstva koje je rad ocijenilo Prof. dr. sc. Željko Hutinski, mentor Prof. dr. sc. Vesna Dušak, sumentor

Datum obrane rada 1. lipanj 2010.

Prof. dr. sc. Neven Vrček, predsjednik Sastav Povjerenstva pred kojim je rad obranjen Prof. dr. sc. Željko Hutinski, mentor Prof. dr. sc. Vesna Dušak, sumentor

Datum promocije SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE VARAŽDIN

POSLIJEDIPLOMSKI ZNANSTVENI STUDIJ INFORMACIJSKIH ZNANOSTI

SMJER STUDIJA: INFORMACIJSKI SUSTAVI

Tedo Vrbanec Broj indeksa: P-802/2001

SIMULACIJSKI ALATI I NJIHOVA OGRANIČENJA PRI ANALIZI I UNAPREĐENJU RADA MREŽA ISTOVRSNIH ENTITETA

MAGISTARSKI RAD

Mentor: Prof. dr. sc. Željko Hutinski Sumentor: Prof. dr. sc. Vesna Dušak

Varaždin, travanj 2010. ZAHVALA

Hvala supruzi Nataši te djeci Davidu, Juditi, Dominiku i Justini na ljubavi, strpljivosti, prijateljstvu i radosti što postojite i što ste tako divni! Žao mi je što sam vam bio mnogo manje dostupan nego što sam htio. Vama posvećujem ovaj rad. Hvala mentoru, prof. dr. sc. Željku Hutinskom na njegovu prijateljstvu, razgovorima, savjetu, vodstvu i podršci još od vremena prve godine dodiplomskog studija. Hvala sumentorici, prof. dr. sc. Vesni Dušak, na razumijevanju, pomoći, utjesi te vrlo kvalitetnim primjedbama. Oboje imate veliko srce. Hvala prof. dr. sc. Nevenu Vrčeku na konstruktivnim i pronicljivim primjedbama koje su znatno podigle kvalitetu rada. Hvala Nadici Hrgarek na prijateljstvu, lekturi, recenziji, vremenu, trudu i vrlo konkretnim savjetima, a posebno u podršci kad više nisam imao snage. Hvala ženinim i mojim roditeljima na daru života i pomoći i kada su mogli i kada nisu. Hvala svima koji su molili za ovu nakanu, moju obitelj i mene te konačno, a zapravo prvo, hvala Bogu na svemu!

Tedo Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

PREDGOVOR

Mreže istovrsnih entiteta1 (engl. peer-to-peer, skraćeno P2P) oblik su distribuiranih2 računalnih sustava s naglaskom na samoorganiziranje, decentralizaciju i neovisnost njihovih čvorova. Navedena obilježja omogućuju stvaranje visoko prilagodljivih, robusnih i proširivih mreža, ujedno izuzetno jeftinih te vrlo zanimljivih kao način oblikovanja distribuiranih sustava. U radu se ravnopravno koristite izrazi istovrsni entiteti, engl. izvornik peer-to-peer i pripadna kratica P2P, radi njene praktičnosti i uvriježenosti njena korištenja. Sva se tri izraza smatraju ekvivalentnima. Sustavi istovrsnih entiteta pružaju podršku za dijeljenje resursa, razmjenu datoteka, razmjenu podataka, publiciranje sadržaja, pretraživanje, preuzimanje i distribuciju sadržaja, spletnu obradu, trenutno dopisivanje, distribuiranu pohranu, distribuirane mrežne usluge, video na zahtjev te Internet telefoniju, ..., a nove se primjene stalno pojavljuju u različitim područjima. P2P tehnologija izrazito povećava iskorištenost3 komunikacijskih kanala i računala povezanih na Internet. U većini slučajeva P2P tehnologije su mrežno orijentiranog modela koji ne ovisi o središnjim kontrolnim točkama ili je njihov broj toliki i razmještaj takav da na prihvatljivu razinu smanjuje broj veza iz punog mrežnog modela. Na taj način se, osim povećanja performansi u traženju, dostavi i obradi informacija, poboljšava i ukupna pouzdanost sustava. Zašto su mreže istovrsnih entiteta tako učinkovite? Kada korisnik želi preuzeti datoteke sa primjerice web stranica, on pritiskom tipke miša na određenu web poveznicu ili upisom određene web adrese posredstvom tipkovnice zapravo podnosi HTTP GET zahtjev. Ovaj zahtjev za datotekom koristi jednu TCP vezu, te komunicira s jednim poslužiteljem s kojeg prenosi cijelu datoteku. Nasuprot tome, mreže istovrsnih entiteta odnosno njihovi protokoli stvaraju TCP veze s većim brojem čvorova i ostvaruju niz malih zahtjeva za prijenosom podataka. Programski klijent mreže istovrsnih entiteta na kraju od svih pristiglih dijelova ponovo stvara cjelovitu datoteku. Svaki čvor ima ograničeni predajni kapacitet (engl. upload) komunikacijskog kanala kojim je povezan na Internet, ali povezanost sa mnogim čvorovima u mrežama istovrsnih entiteta omogućava brži ukupni

1 Entitet je, sasvim općenito, nešto što postoji. Formalno, istovrsni entiteti opisani su uređenim skupom istovrsnih atributa. Danas se u poslovnoj primjeni mreža prevladavajuće koristi model mrežne arhitekture koji nazivamo klijent-poslužitelj. I klijent i poslužitelj su entiteti – čvorovi mreže – različitih uloga i zadaća. Istovrsni entiteti su, nasuprot tome, ravnopravnih uloga, zadaća i mogućnosti odnosno odgovornosti. 2 Vidjeti prilog Distribuirani računalni sustavi. 3 Cinici bi mogli s pravom reći opterećenost.

I Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta prijenos datoteke. Čim se djelić datoteke prenese s jednog čvora na drugi, onaj drugi i sam postaje poslužitelj za druge korisnike koji taj djelić još nisu preuzeli te doprinosi kako bržoj cirkulaciji podataka, tako i disperziji troškova prijenosa među korisnicima. Sustav ujedno postaje i robustan, jer se zalihost podataka povećava. Isti djelić datoteke može se nalaziti kod mnoštva korisnika, a da niti jedan od njih ne mora imati cijelu datoteku(!). Eksperimentalna evaluacija i testiranje najbolji su načini za analizu distribuiranih sustava. Implementacija mreža istovrsnih entiteta zahtijeva angažiranje značajnih resursa u obliku velikog broja čvorova i korisnika, te ih je u stvarnom životu moguće testirati tek kada se izgrade. Kako bi se ipak unaprijed testiralo i predvidjelo njihovo ponašanje, dva su moguća rješenja: jedno predstavljaju simulacije programskim simulatorima, a drugo je uključenje u PlanetLab, odnosno Emulab projekte. PlanetLab [1] je testna mreža oformljena od mnoštva računala, (gotovo tisuću, što je i ciljna veličina), distribuiranih po cijelom svijetu, s ciljem evaluacije mrežnih i distribuiranih sustava u stvarnim uvjetima. Svaki istraživački projekt koji koristi PlanetLab dobije virtualne strojeve na podskupu raspoloživih čvorova. Emulab je jedan od projekata koji koristi fizičke resurse PlanetLaba. To je također [2] testna mreža povezanih računala koja istraživačima omogućava slobodu korištenja kakve god računalne okoline (OS i potrebne aplikacije na čvorovima korisnici sami instaliraju), pomoću koje istraživači razvijaju, ispravljaju i procjenjuju svoje distribuirane sustave. Korisnički računi su kod PlanetLaba ograničeni na korporacije i sveučilišta koja svojim računalnim i komunikacijskim resursima sudjeluju u projektu PlanetLab. Emulab ima liberalniji pristup dozvoljavajući da se korisnički računi otvaraju od strane akademskih istraživača, bez obveze participacije računalnim i mrežnim resursima. Korištenje programskih simulatora predstavlja brži i jednostavniji pristup, ali i manje precizan i vjerodostojan. Po logici stvari trebalo bi ih koristiti u prvim razvojnim fazama novih P2P protokola, a kada se krene s implementacijom poželjno ih je testirati u nekom testnom distribuiranom sustavu, poput navedenih PlanetLab i Emulab. Postavlja se pitanje koliko su postojeći simulatori pogodni za simulacije pojedinih vrsta mreža istovrsnih entiteta, a s obzirom na kriterije poput prilagodljivosti simulacije ili detaljizacije načina rada i komuniciranja korisnika, aplikacija, protokola i fizičke mreže.

U Čakovcu, 7. travanj 2010. Tedo Vrbanec

II Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

SADRŽAJ

Predgovor...... I Popis kratica...... VII Popis slika...... X Popis tablica...... XII Sažetak...... XIII Abstract...... XIV 1 Uvod...... 1 1.1 Uzroci nastanka sustava istovrsnih entiteta...... 3 1.2 Definicija sustava istovrsnih entiteta...... 6 1.3 Ciljevi istraživanja...... 7 1.4 Hipoteze...... 7 1.5 Struktura rada...... 8 2 Sustavi istovrsnih entiteta...... 10 2.1 Opće značajke...... 10 2.1.1 Usporedba modela P2P i klijent-poslužitelj...... 10 2.1.2 Usporedba HTTP i P2P prometa...... 18 2.2 Povijest razvoja i generacije...... 19 2.2.1 Počeci masovnije razmjene datoteka...... 19 2.2.2 Razvijena konvencionalna razmjena datoteka...... 19 2.2.3 Suvremena masovna razmjena datoteka...... 20 2.2.3.1 Prva generacija: centralizirani sustavi...... 21 2.2.3.2 Druga generacija: decentralizirani sustavi...... 22 2.2.3.3 Treća generacija: hibridni sustavi...... 24 2.2.3.4 Četvrta generacija: današnji razvoj...... 25 2.3 Mreže istovrsnih entiteta...... 26 2.3.1 Tradicionalne mreže istovrsnih entiteta...... 27 2.3.2 Kućne mreže istovrsnih entiteta...... 27 2.3.3 Suvremene mreže za dijeljenje datoteka...... 28 2.3.3.1 Vrste mreža istovrsnih entiteta...... 28 2.3.3.1.1 Centralizirane mreže istovrsnih entiteta...... 29 2.3.3.1.2 Decentralizirane mreže istovrsnih entiteta...... 30 2.3.3.1.2.1 Strukturirane mreže istovrsnih entiteta...... 31

III Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

2.3.3.1.2.2 Nestrukturirane mreže istovrsnih entiteta...... 31 2.3.3.2 Distribuirana tablica raspršivanja...... 32 2.3.3.3 Prekrivajuća mreža...... 35 2.3.3.4 Taksonomija mreža istovrsnih entiteta...... 37 2.3.3.5 Primjene mreža istovrsnih entiteta...... 43 2.3.3.5.1 Znanstvena primjena mreža istovrsnih entiteta...... 43 2.3.3.5.2 Primjeri poslovne primjene mreža istovrsnih entiteta...... 46 2.4 P2P protokoli i aplikacije...... 49 2.4.1 Stanje i odnosi vrsta Internet prometa...... 50 2.4.2 Pregled i usporedba P2P aplikacija...... 52 2.4.3 Pregled P2P protokola...... 59 2.4.3.1 Nestrukturirani P2P protokoli...... 60 ...... 60 Seti@Home...... 61 BOINC...... 61 ...... 62 NeuroGrid...... 63 FastTrack...... 64 EDonkey...... 64 ...... 65 OpenFT...... 66 Direct Connect...... 68 2.4.3.2 Strukturirani (DHT) P2P protokoli...... 70 ...... 70 Chord...... 72 CAN...... 74 Tapestry...... 74 Pastry...... 75 ...... 75 JXTA...... 76 2.5 Sažetak...... 77 3 Kriterijska analiza P2P mreža...... 83 3.1 Ciljevi korištenja P2P mreža...... 84 3.2 Parametri opisa P2P mreža...... 86

IV Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

3.3 Evaluacija značaja parametara P2P mreža...... 94 4 Simulacije i simulatori P2P sustava...... 102 4.1 Simulacija sustava i značajke...... 102 4.2 Vrste računalnih simulacija...... 103 4.3 Simulacija s diskretnim događajima...... 104 4.4 Kriteriji usporedbe i vrednovanja P2P simulatora korištenih u istraživanju...... 105 4.5 Metoda vrednovanja...... 107 4.6 Pregled korištenih P2P simulatora...... 108 4.6.1 P2P simulatori prekrivajuće mreže...... 112 NeuroGrid...... 112 FreePastry...... 113 PeerSim...... 115 RangeSim...... 116 GnutellaSim...... 116 GnucNS...... 117 p2psim...... 118 PlanetSim...... 119 PeerfactSim.KOM...... 120 GPS...... 123 4.6.2 P2P mrežni simulatori...... 124 Narses...... 124 NS-2, NS-3...... 126 OMNeT++...... 128 OverSim...... 129 J-Sim...... 131 4.7 Usporedba simulatora...... 132 4.8 Zaključak...... 137 5 Model P2P simulatora...... 138 5.1 Funkcionalni zahtjevi...... 139 5.2 Nefunkcionalni zahtjevi...... 142 5.3 Koncepcijski model...... 144 5.3.1 Model mrežnog sloja...... 146 5.3.2 Model protokola...... 149 5.3.3 Model aplikativnog sloja...... 150

V Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

5.3.4 Model korisničkog ponašanja...... 151 5.4 ER model...... 153 6 Zaključak i preporuke za daljnje istraživanje...... 155 Literatura...... 161 Prilozi...... I I Distribuirani računalni sustavi...... I II ARPANET...... IV III Kategorije primjena P2P mreža s primjerima...... VI Čvorovi - agenti...... VII Suradnja...... VIII Razvojne okoline...... XI Uređaji kao čvorovi...... XII Raspodijeljeno računanje...... XIV Distribuirani objekti...... XVII Distribuirane tražilice...... XVIII Dijeljenje datoteka...... XX Igre...... XXIII Infrastruktura...... XXIV Internetski operacijski sustavi...... XXVII Distribucija licenciranih sadržaja...... XXVII Platforme za dopisivanje...... XXVIII Metapodaci...... XXX Upravljanje ugledom i imovinom...... XXXI Sigurnost...... XXXII Poslužitelji i servisi kao P2P čvorovi...... XXXIII Superdistribucija (višekanalna razmjena sadržaja)...... XXXVI Stvaranje web sadržaja...... XXXVII

VI Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

POPIS KRATICA

P2P = veza ravnopravnih rač unala, engl. peer-to-peer...... I VoIP = telefonija preko Interneta (internet protokola), engl. Voice over IP...... 1 MSN = Microsoft mreža trenutnih poruka, engl. Microsoft Network...... 2 DoS = napad uskrać ivanjem resursa legalnim korisnicima, engl. Denial of Service...... 4 JADE = naziv Java razvojne okoline, engl. Java Agent DEvelopment Framework...... 4 HTTP = protokol za prijenos hiperteksta, engl. hypertext transfer protocol...... 13 FTP = protokol za razmjenu datoteka, engl. ...... 13 NNTP = protokol za prijenos mrežnih novina - Usenet, engl. Network News Transfer Protocol...... 15 FEC = tehnika ispravljanja grešaka unaprijed, engl. Forward Error Correction...... 15 VoD = video na zahtjev, engl. Video on Demand...... 15 nVoD = umalo video na zahtjev, engl. near Video on Demand...... 15 PVR = osobni video rekorder, engl. Personal Video Recorder...... 16 pVoD = "gurnut" video na zahtjev sustav, engl. pushed Video on Demand...... 16 MPEG = standard za kodiranje audio-vizuelnih sadržaja, engl. Moving Picture Experts Group...... 16 PSTN = javna telefonska prespojna mreža, engl. Public Switch Telephone Network...... 17 ISP = davatelj Internet usluga, engl. Internet Service Provider...... 17 URL = web adresa nekog sadržaja na Internetu, engl. Uniform Resource Locator...... 18 ID = jedinstveni identifikator, engl. Identifier...... 18 UUCP = akronim od engl. Unix to Unix Copy...... 19 IM = trenutna poruka i klijent za slanje trenutnih poruka engl. Instant Message i Instant Messenger...... 19 SMTP = protokol za prijenos elektronič ke pošte, engl. Simple Mail Transfer Protocol.....25 SOHO = mali ured i ured kod kuć e, engl. Small Office/Home Office...... 27 DHT = distribuirana tablica raspršivanja, engl. ...... 31 GUID = globalni jedinstveni identifikator, engl. Globally Unique Identifier...... 33 EGI = Europska grid infrastruktura, engl. European Grid Infrastructure...... 44 RIAA = američ ko udruženje glazbene industrije, engl. RIAA - Recording Industry Association of America...... 57 HTL = broj dozvoljenih skokova, engl. Hops-To-Live...... 91

VII Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

CLI = naredbodavno linijsko suč elje, engl. Command Line Interface...... 112 RMI = metoda udaljenog prizivanja, engl. Remote Method Invocation...... 114 IPC = međ uprocesna komunikacija, engl. Interprocess Communication...... 114 NSF = skrać eni naziv ameri č ke zaklade za znanost, engl. National Science Foundation. 127 INRIA = skrać eni naziv za francuski istraživa č ki institut za ra č unalne znanosti i upravljanje, engl. French national institute for research in computer science and control...... 127 RPC = tehnika međ uprocesne komunikacije, engl. Remote procedure call...... 130 IETF = engl. Internet Engineering Task Force...... 132 MAS = sustav više agenata, engl. Multy-Agent System...... VII CGI = standardni protokol za povezivanje vanjskih aplikacija sa informacijskim poslužiteljem, obič no web poslužiteljem, engl. Common Gateway Interface...... XII XML = jezik za označ avanje podataka, engl. EXtensible Markup Language...... XII SOAP = jednostavni protokol za pristupanje objektima, engl. Simple Object Access Protocol...... XIV ISAPI = aplikacijsko programsko suč elje za Internet poslužitelje, engl. Internet Server Application Programming Interface...... XX GNU = rekurzivna kratica za „GNU nije Unix“, engl. „GNU's Not Unix“...... XXI MIT = Massachusetts Institute of Technology...... XXIV UDDI = na XML-u temeljen registar tvrtki koje su prisutne na Internetu, engl. Universal Description, Discovery and Integration...... XXVI WSDL = opis suč elja XML usluge, engl. Web Services Description Language...... XXVI ebXML = XML za elektronič ko poslovanje...... XXVI XAML = deklarativni XML-temeljen jezik koji se koristi za inicijalizaciju strukturiranih vrijednosti i objekata, engl. Extensible Application Markup Language...... XXVI XSL = skup jezič nih tehnologija za definiranje transformacije i prikaza XML dokumenata, engl. Extensible Stylesheet Language...... XXVI WML = jezik koji se temelji na XML-u, namijenjen za uređ aje koji implementiraju Wireless Application Protocol (WAP) specifikacije, engl. Wireless Markup Language...... XXVI RDF = radni okvir za opis resursa, engl. Resource Description Framework...... XXXI

VIII Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

XML-RPC = protokol koji koristeć i XML omogu ć ava ostvarivanje udaljenih poziva), engl. EXtensible Markup Language + Remote Procedure Call...... XXXV WYSIWYG = prikaz neč ega što vidimo istovjetan je kona č nom izgledu, engl. What You See Is What You Get...... XXXVII

IX Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

POPIS SLIKA

Slika 1: Struktura telefonske mreže...... 5 Slika 2: Baranov prijedlog distribuiranog digitalnog prespojnog sustava...... 6 Slika 3: P2P - centralizirani sustav (1. generacija)...... 21 Slika 4: P2P - decentralizirani sustav (2. generacija)...... 22 Slika 5: P2P - hibridni sustav (3. generacija)...... 24 Slika 6: Usporedba topologija mreža istovrsnih entiteta...... 29 Slika 7: Centralizirana mreža istovrsnih entiteta...... 29 Slika 8: Decentralizirana mreža istovrsnih entiteta...... 30 Slika 9: Mjesto i uloga DHT-a u P2P sustavu...... 33 Slika 10: Prekrivajuć a mreža...... 36 Slika 11: Temeljne kategorije P2P sustava...... 37 Slika 12: Klase P2P aplikacija...... 37 Slika 13: Uč estalost više-kategorijske pripadnosti P2P aplikacija...... 39 Slika 14: CRO NGI infrastruktura (2010.)...... 44 Slika 15: Vremenski plan razvoja EGI sustava...... 44 Slika 16: Odnos aplikacija, protokola i mreža u P2P sustavima (ER dijagram)...... 49 Slika 17: Relativni odnos glavnih vrsta Internet prometa 1993.-2006. g...... 50 Slika 18: Model pretraživanja kod Gnutella protokola...... 62 Slika 19: Koncept pretrage kod FreeNet sustava...... 71 Slika 20: Chord protokol - prstenasta topologija veza...... 73 Slika 21: Kademlia - binarno stablo ID č vorova...... 76 Slika 22: Parametri opisa P2P mreža...... 88 Slika 23: Odnos broja strukturiranih i nestrukturiranih mreža...... 94 Slika 24: Stupanj decentralizacije suvremenih P2P mreža...... 95 Slika 25: Arhitektura današnjih P2P mreža...... 96 Slika 26: Razdioba protokola pretraživanja suvremenih P2P mreža...... 97 Slika 27: Razine garancije lociranja i performanse usmjeravanja P2P mreža...... 98 Slika 28: Modeli rješavanja pitanja pouzdanosti i otpornosti na greške u radu P2P mreža.99 Slika 29: Skalabilnost postojeć ih P2P mreža za dijeljenje datoteka...... 100 Slika 30: Dijagram toka simulacije s diskretnim događ ajima...... 104 Slika 31: Suč elje NeuroGrid simulatora...... 112

X Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 32: Prikaz rada GnutellaSim simulatora...... 117 Slika 33: Suč elje GnucNS simulatora...... 118 Slika 34: PlanetSim Arhitektura...... 120 Slika 35: Arhitektura PeerfactSim.KOM simulatora...... 121 Slika 36: Rudimentarno grafič ko su č elje PeerfactSim.KOM simulatora...... 122 Slika 37: Vizualizacija simulacije kod PeerfactSim.KOM simulatora...... 122 Slika 38: Arhitektura GPS simulatora...... 123 Slika 39: Dijelovi i vrste suč elja NS-3 simulatora...... 127 Slika 40: Grafič ka radna okolina OMNeT++...... 129 Slika 41: OverSim suč elje...... 131 Slika 42: Broj i udio korištenih programskih jezika...... 133 Slika 43: Problemske domene P2P simulatora...... 138 Slika 44: Funkcionalni zahtjevi za P2P simulator...... 141 Slika 45: Nefunkcionalni zahtjevi za P2P simulator...... 143 Slika 46: Koncepcijski model P2P simulatora (a)...... 144 Slika 47: Koncepcijski model P2P simulatora (b)...... 145 Slika 48: Model mrežnog sloja P2P simulatora...... 148 Slika 49: Bitne sastavnice predloška P2P protokola...... 150 Slika 50: Funkcije aplikativnog moderatora...... 151 Slika 51: Modeli korisnič kog ponašanja...... 152 Slika 52: ER model P2P simulatora...... 154 Slika 53: XML-RPC protokol...... XXXVI

XI Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

POPIS TABLICA

Tablica 1: Usporedba HTTP i P2P prometa...... 18 Tablica 2: Matrica P2P aplikacija i pripadnih kategorija...... 39 Tablica 3: Proporcije Internet prometa prema protokolima i regijama 2008. godine...... 51 Tablica 4: Usporedba udjela klasa protokola nekih regija za 2007. i 2008./2009. godinu..52 Tablica 5: Pregled i usporedba P2P aplikacija za dijeljenje datoteka...... 53 Tablica 6: P2P protokoli za dijeljenje datoteka i ovisne aplikacije...... 58 Tablica 7: Sažetak obilježja P2P modela...... 81 Tablica 8: Usporedba struktura i stupnja decentralizacije P2P mreža...... 89 Tablica 9: Usporedba arhitektura P2P mreža...... 90 Tablica 10: Usporedba protokola pretraživanja i usmjeravanja P2P mreža...... 90 Tablica 11: Usporedba parametara sustava i performansi usmjeravanja P2P mreža...... 91 Tablica 12: Usporedba pouzdanosti i otpornosti na greške te skalabilnosti P2P mreža...... 92 Tablica 13: Usporedba anonimnosti i politike obrač unavanja P2P mreža...... 92 Tablica 14: Usporedba obilježja sigurnosti P2P mreža...... 93 Tablica 15: Osnovne informacije o korištenim P2P simulatorima...... 110 Tablica 16: Obilježja ispitanih simulatora...... 135 Tablica 17: Aktivne P2P mreže i pripadni protokoli...... 149 Tablica 18: Gnutella klijenti...... XXI

XII Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

SAŽETAK

Rad se bavi problemskim prostorima P2P sustava i P2P simulatora. Objašnjava uzroke nastanka P2P sustava, povijesni razvoj, prepoznaje generacije, vrste i podvrste te njihova obilježja. Uspoređuje paradigme klijent-poslužitelj i P2P sustavi, a za potonje navodi postojeće definicije i nudi vlastitu. Razgraničava pojmove prekrivajuće mreže i njome povezane distribuirane tablice raspršivanja (koju ona često koristi) od komunikacijske podmreže P2P sustava. Predlaže taksonomiju P2P mreža te prikazuje njihovu poslovnu i znanstvenu primjenu. Rad daje kriterijsku analizu rada P2P mreža, parametre koji opisuju rad P2P mreža te evaluaciju značaja parametara. Predočava rezultate istraživanja P2P protokola i P2P aplikacija, njihovo stanje i odnose te daje njihov pregled i usporedba. Rad daje nužan okvir simulacijskog modeliranja s naglaskom na specifičnosti simulacijskog modeliranja P2P sustava, tj. zbog čega takve simulacije predstavljaju izazov. Simulacijsko se modeliranje P2P mreža svrstava unutar poznatih kategorija kao stohastičko, dinamičko, diskretno i distribuirano računalno modeliranje sustava. Objašnjava metodu vrednovanja P2P simulatora, a zatim daje pregled istraživanih simulatora P2P sustava, parametre njihova opisa te kriterije njihove usporedbe i vrednovanja. Rad predlaže model P2P simulatora, njegove funkcionalne i nefunkcionalne zahtjeve, koncepcijski model koji dalje raslojava na slojeve: mrežni, protokolarni, aplikativni i korisničkog ponašanja, kojima se upravlja i komunicira putem grafičkog korisničkog sučelja, uz formalizaciju ER modeliranjem. Konačno, rad uočava i prikazuje otvorena pitanja i područja budućeg rada te iznosi preporuke za daljnja istraživanja.

KLJUČNE RIJEČI Distribuirani sustavi, P2P mreže, P2P simulatori.

XIII Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

ABSTRACT

This master’s thesis deals with peer-to-peer (P2P) systems and problem-areas of P2P simulators. It explains the causes of the emergence of P2P systems, their historical development, recognizes their generations, types and subtypes as well as their characteristics. The thesis compares the -server and P2P systems paradigms. For the latter it states the existing and offers its own definitions. It distinguishes the concepts of and its associated distributed hash tables (which it often uses) from the P2P systems communication subnets. The thesis proposes a taxonomy of P2P networks and shows their business and scientific applications. Furthermore, the thesis gives a criteria analysis of P2P networks, the parameters that describe the work of P2P networks and evaluation of relevant parameters. It also presents the results of the research of P2P protocols, and P2P applications, their status and their relationships as well as provides their overview and comparison. The thesis provides a necessary framework of simulation modelling with emphasis on the specifics of the simulation modelling P2P systems, i.e. why such simulations present a challenge. The thesis categorizes the simulation modelling of P2P networks within the categories known as stochastic, dynamic, discrete and distributed computer modelling system. It also explains the P2P simulators evaluation method and then provides an overview of the researched simulators of P2P systems, the parameters of their description and criteria for their comparison and evaluation. The thesis proposes a P2P simulator model, its functional and dysfunctional requirements; a conceptual model, which consists of the following layers: network, protocol, application and user behaviour. They are managed and communicated with via a graphical user interface. The whole model has been formalized by using ER modelling. Finally, the thesis indicates and presents open issues, areas of future work and gives some recommendations for further research.

KEY WORDS Distributed systems, peer-to-peer networks, peer-to-peer simulators.

XIV Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

1 UVOD

Mreže istovrsnih entiteta temelje se na računalima – čvorovima mreže, na njihovoj računalnoj snazi i na brzini njihove međusobne povezanosti1. Za razliku od klasične arhitekture klijent-poslužitelj u kojoj neka računala poslužuju druga, ovdje je svaka radna stanica ujedno i klijent i poslužitelj te ima podjednake mogućnosti i odgovornosti. Prednosti su ovakvog sustava:

• nema središnje točke – poslužitelja ili više njih o kojima ovisi rad cijele mreže,

• ukupan kapacitet spremišta podataka, ukupna širina komunikacijske veze i ukupna računalna snaga rastu proporcionalno rastu broja računala koji čine tu mrežu i od njihovih obilježja. Danas se P2P mreže koriste za sljedeće namjene:

• dijeljenje resursa,

• razmjenu datoteka (engl. File ),

• razmjenu podataka (engl. Data Sharing),

• publiciranje sadržaja (engl. Content Publishing),

• pretraživanje, preuzimanje i distribuciju sadržaja (engl. Content Searching, Retrieval and Distribution),

• spletnu obradu (engl. Grid2 Computing),

• trenutno dopisivanje (engl. ),

• distribuiranu pohranu (engl. Distributed Storage),

• distribuirane mrežne usluge (engl. Distributed Network Services),

• video na zahtjev (engl. Video on Demand, VoD) te

• Internet telefoniju (engl. Voice over IP, VoIP). U ukupnom (mrežnom) prometu Interneta, sve je veći udio P2P prometa. Njega je današnjom tehnologijom moguće presresti i prekinuti, bez obzira što neke P2P mreže dinamički mijenjaju komunikacijska vrata (engl. port) kojima komuniciraju. To je moguće učiniti analizatorima mrežnog prometa koji djeluju na način da pregledavaju sadržaje paketa ili koriste obrasce ponašanja kojima fino razlučuju vrstu prometa i selektivno ga mogu zabraniti. Razloga za zaprečivanje P2P prometa je podosta, ali navedimo samo tri koja su, svaki za sebe, dovoljno snažni: utjecaj P2P sustava na opterećenje mreža, prijetnje

1 Brzina međusobne ovisnosti čvorova u praksi neposredno ovisi o brzini njihove povezanosti na Internet. 2 Grid ili splet je prema [3] „infrastruktura za globalno dijeljenje računalno intenzivnih resursa poput superračunala ili računalnih klastera.“

Tedo Vrbanec FOI, 2010. 1 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta malignog kôda koji se snažno širi ovim putem i pravni problemi vezanih uz kršenje prava intelektualnog vlasništva i autorskih prava. Dakle, iako je sposobnijem ili tehnički opremljenijem mrežnom administratoru moguće prepriječiti neželjeni promet, to više praktično nije moguće. Praktična strana nemogućnosti proizlazi iz dva (prozaična) razloga:

• Rašireni operacijski sustavi današnjice za ne-poslužiteljska računala imaju podrazumijevajuće (engl. default) instalirane P2P servise za trenutno dopisivanje, poput, primjerice, MSN i Windows Messengera u Windows operacijskim sustavima, na koje su se korisnici navikli ili i u uniksoidnim operacijskim sustavima. Navika se odnosi i na odgovorne osobe koje bi takvo što poželjele, odlučile i/ili potpisale.

• P2P komunikacija je postala jedna od temeljnih usluga Interneta. Sve više velikih poslovnih subjekata pronalazi načine korištenja P2P sustava za ostvarenje svojih poslovnih ciljeva, po principu ako protivnika ne možeš pobijediti – pridruži mu se. Tako se korištenjem P2P tehnologije mogu zapravo smanjiti troškovi poslužitelja i njihova održavanja te kapaciteti Internet veze koju treba osigurati klijentima. Naime, u klasičnom modelu klijent-poslužitelj, klijenti komuniciraju s poslužiteljem i često preuzimaju datoteke sa poslužitelja1, a P2P sustavi istu zadaću mogu raditi s disperzijom troškova komunikacijske veze i računalnih resursa poslužitelja na klijente. Poslovni subjekti koriste P2P mreže i za smanjenje troškova telefoniranja, ili ih koriste za distribuirano računalstvo kojim se razmjerno malim sredstvima mogu stvoriti računalni kapaciteti čije su performanse reda veličine super-računala, a za poslovne, znanstvene ili javne primjene i projekte, bez čega mnogi od njih ne bi bili ostvarivi u prihvatljivom vremenu ili s prihvatljivim troškovima. Unatoč svim pozitivnim elementima koji potvrđuju opravdanost korištenja P2P mreža, a s obzirom na:

• masovnost čvorova uključenih u komunikaciju,

• količinu prometa koji se pri toj komunikaciji odvija,

• moguće negativne posljedice grešaka u aplikacijama koje koriste P2P protokole čija posljedica može biti zagušenje manjeg ili većeg dijela Interneta,

• nemalu cijenu razvoja novih protokola i

• poteškoće testiranja tako masovnih stvarnih sustava,

1 Navedimo ovdje neke uobičajene primjere: ažuriranja antivirusne zaštite, programske nadogradnje, nadogradnje operacijskih sustava, nadogradnje pogonske programske podrške (engl. driver) i sl.

Tedo Vrbanec FOI, 2010. 2 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta nužno je testiranje P2P sustava prije njihova puštanja u rad. Praktičan, jednostavan i jeftin način testiranja je testiranje simulacijama, pomoću programskih simulatora. Postavlja se pitanje koliko je to moguće sa postojećim simulatorima, pod kojim uvjetima i na kraju, postoji li potreba stvaranja P2P simulatora opće namjene, dovoljno otvorenog, parametriziranog, koji nema u kôd ugrađenih obilježja, te, ukoliko je odgovor pozitivan, koji su okviri njegova razvoja i zahtjevi koje kao konačan proizvod mora zadovoljiti. U tom se slučaju otvara dodatni prostor za daljnji budući rad – izradu odgovarajućeg simulatora, jer taj posao svojim obimom i tipom, nadilazi i skreće okvire ovog rada.

1.1 UZROCI NASTANKA SUSTAVA ISTOVRSNIH ENTITETA

Razvoj informacijsko-komunikacijske tehnologije doveo je do toga da su sredinom 1990-tih godina mogućnosti prosječnog računala postale veće od stvarnih potreba njihovih korisnika. Broj se relativno neiskorištenih računala povećavao te je potencijalna računalna snaga sve više „upadala u oči“ znanstvenicima koji su lako pronalazili potencijalne primjene. Kasnije su tu potencijalnu korist uočile i druge društvene skupine, prije svega kriminalne. Za neke ljudske potrebe često su potrebna vrlo snažna, tzv. super-računala čija je cijena izuzetno visoka pa i najbogatiji zaziru od njihove kupovine. Znatno je jeftinije „upregnuti“ mnoštvo relativno prosječnih ili čak ispod prosječnih računala u grozd (engl. cluster) koji zajednički, mrežno povezani, usporedno obrađuju djeliće cjelokupnog zadatka te ih tako obrađene spajaju u ukupnost rezultata. Najpoznatiji primjer primjene takve tehnologije je projekt SETI@Home koji koristeći P2P tehnike na efikasan način koristi resurse tisuća računala diljem svijeta za analizu velike količine podataka – gotovo bez troškova, usporedi li ih se sa troškovima super-računala ekvivalentne snage obrade. Uspjeh ovog projekta koji tvori jednu od najsnažnijih računalnih sustava današnjice, rezultirao je povećanjem interesa za proučavanjem i širenjem mreža istovrsnih entiteta. Mreže istovrsnih entiteta dinamičko su područje gdje se nove aplikacije i protokoli stalno pojavljuju. Testiranje performansi sustava prije uporabe prilično je uobičajeno kod razvoja programskih sustava. To je moguće na dva glavna načina:

• eksperimentiranjem sa stvarnim sustavom i

• eksperimentiranjem s modelom sustava.

Tedo Vrbanec FOI, 2010. 3 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Mreže istovrsnih entiteta imaju neuobičajena svojstva: po svojoj naravi teže širenju, a sastoje se od mnoštva heterogenih1 računalnih sustava koji imaju složeno međudjelovanje fizičkih računala i mreža te aplikacija i korisnika. Stoga testiranje mreža istovrsnih entiteta i pripadnih protokola u samom njihovom radu, dakle u realnom sustavu, u pravilu i nije moguće. Zbog teškoća u evaluaciji protokola prije njihove široke primjene, događa se da takve mreže kratko žive i brzo nestaju zbog loših performansi. I one koje ostanu u uporabi, povremeno mogu doživjeti velike probleme. Tako je recimo Gnutella u rujnu 2001. imala značajan pad performansi uslijed, kako je izgledalo, DoS napada. Ispostavilo se da je uzrok problema bio tada novi Gnutella klijent pod nazivom Xolox, koji je nenamjerno gušio mrežu opterećujući je nepotrebnim porukama. Naime, klijent je koristio algoritam koji je uključivao česte provjere mrežne povezanosti kako bi slijedio željenu, od korisnika definiranu brzinu preuzimanja datoteka. Tada se pokazalo da je suštinski problem razvoja P2P aplikacija nemogućnost testiranja novih algoritama i protokola uslijed nepostojanja odgovarajućih simulatora, a u to vrijeme nisu postojale ni testne mreže za distribuirane sustave poput PlanetLaba koja je nastala 2002. godine. Na temelju dotadašnjih pozitivnih i negativnih iskustava, nastala je nova generacija P2P protokola i sustava koja naglašava samoorganiziranost. Ti protokoli u povratnoj su sprezi s mrežnim topologijama, aplikacijama i ponašanjem korisnika. Eksperimentiranje s takvim mrežama stavlja pred simulatore zahtjev postojanja mogućnosti modeliranja međuovisnosti korisnika, aplikacija, protokola i fizičkih mreža. Istraživači koji žele simulirati P2P sustave prirodno teže izbjegavanju složenih simulatora te se usredotočuju na neke odabrane istraživačke domene. Neki izrađuju simulatore od početka, a drugi stvaraju simulatore pomoću već postojećih razvojnih platformi poput JADE [4] te na taj način ubrzavaju njihov razvoj. Problem svih simulatora opće namjene je u tome da se rezultati dobiveni jednim simulatorom teško mogu evaluirati, a još je teže dobiti jednake rezultate od drugih simulatora, ponajviše zbog ukôdiranih2 umjesto parametriziranih pretpostavki svakog simulatora. Simulacija rada P2P mreže koja bi bila vjerodostojna, tj. koja bi odgovarala stvarnom stanju realnog sustava, mora biti složena. Ona uključuje modeliranje više slojeva, poput fizičke mreže, protokola i aplikacija te korisnika. Također, ona uključuje velik broj čvorova na različitim slojevima. Vezano uz to postavljaju se dva pitanja:

1 Heterogenih u pogledu računalne platforme, tj. kombinacije sklopovlja i operacijskog sustava. U pogledu protokola kojima se odvija komunikacija, ovi su sustavi homogeni. U pogledu klijenata mogu biti manje ili više heterogeni ili homogeni. 2 U programski kôd uključene vrijednosti.

Tedo Vrbanec FOI, 2010. 4 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

1. Koliko je zaista potrebno detaljno ulaziti u simulaciju P2P sustava? 2. Postoji li kakva snažna uzročno-posljedična veza unutar P2P sustava takva da neznatna promjena fizičke mreže, aplikacije, protokola ili korisničkog ponašanja može dovesti do velike promjene performansi cijelog P2P sustava? U ovom se istraživanju kroz proučavanje utjecaja ponašanja korisnika, protokola i obilježja fizičke mreže na cjelokupni rad mreže istovrsnih entiteta pomoću programskih simulatora, u suštini proučavaju programski simulatori te koliko su oni u stanju simulacijama pomoći doći do boljeg, efikasnijeg rada mreže, tj. dovoljno dobrog rješenja. Situacije u kojima je to potrebno nisu situacije projektiranja ili restrukturiranja mreža, već poboljšanja njenog rada u strukturalnom obliku kakav je, provjeravajući da li poboljšanje njenog rada može biti vezano uz uporabu novih ili postojećih P2P protokola te klijenata koji ih koriste, a koji su dokazali svoju robusnost. Naime, klijent-poslužitelj sustavi stoje u istom odnosu na P2P sustave kao centralizirana telefonska struktura iz 1960-tih godina u SAD-u (slika 1) u odnosu na Baranovu1 decentraliziranu strukturu (slika 2), koja je jako robusna i otporna na greške [5]. Obje slike sadrže isti broj i razmještaj čvorova, ali su oni drugačije povezani.

Slika 1: Struktura telefonske mreže Izvor: Tanenbaum, A. S., Computer Networks, Prentice Hall, 2003.

1 Paul Baran, idejni je začetnik ideje komutacije paketa (1961.) i distribuiranog mrežnog sustava.

Tedo Vrbanec FOI, 2010. 5 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 2: Baranov prijedlog distribuiranog digitalnog prespojnog sustava Izvor: Tanenbaum, A. S., Computer Networks, Prentice Hall, 2003.

1.2 DEFINICIJA SUSTAVA ISTOVRSNIH ENTITETA

Mreže istovrsnih entiteta mogu se definirati na različite načine.

• Milojičić sa suradnicima [3] mreže istovrsnih entiteta definira kao „klase sustava i aplikacija koje omogućavaju distribuiranim resursima izvršavanje funkcije na decentralizirani način“. I dodaje: „P2P sustav je onaj u kome autonomni čvorovi ovise o drugim autonomnim čvorovima.“

• Intel P2P Working Group [6]: „dijeljeni računalni resursi i usluge nastali neposrednom razmjenom između sustava“.

• Shirky (O’Reilly and Associate) [7]: “P2P je klasa aplikacija koja iskorištava resurse – spremišta, cikluse, sadržaj, ljudsku prisutnost – raspoloživu na granicama Interneta. S obzirom da pristupanje tim decentraliziranim resursima znači raditi u okolini nestabilne povezanosti i nepredvidljivih IP adresa, P2P čvorovi moraju djelovati izvan DNS sustava i imati značajnu ili potpunu autonomiju od središnjih poslužitelja.“

Tedo Vrbanec FOI, 2010. 6 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

1.3 CILJEVI ISTRAŽIVANJA

Ciljevi su ovog istraživanja sljedeći: 1. Sakupiti i sistematizirati dosadašnje spoznaje o P2P mrežama u okviru potreba ovog rada, zatim spoznaje i praksu simulacija P2P mreža, te probleme s kojima su se drugi istraživači susretali i smjernice koje su dali za daljnja istraživanja. 2. Utvrditi kriterije opisa P2P mreže i valorizirati njihov značaj, tj. kojim parametrima možemo opisati P2P mrežu. 3. Opisati svrhu postojanja simulatora P2P mreža, koja su njihova obilježja te kriterije usporedbe P2P simulatora temeljem prethodno utvrđenih kriterija opisa P2P mreža. 4. Istražiti potrebu izrade generičkog simulatora rada P2P mreža. Ukoliko istraživanje ukaže na potrebu, opisati značaj dodatnih, nezadovoljenih kriterija postojećih simulatora P2P mreža. 5. Razviti rang-listu vrednovanih simulatora P2P mreža i domenu njihove primjene.

1.4 HIPOTEZE

Nedvojbeno je da se simulacijama može na zadovoljavajući način modelirati rad mreža istovrsnih entiteta. Odabir simulatora usko je povezan sa serijama P2P simulacija kojima se promatra utjecaj promjena parametara na performanse cjelokupnog P2P sustava. S tim u vezi, postavljaju se hipoteze. Hipoteza: H1: Postojeći programski simulatori mreža istovrsnih entiteta nisu zadovoljavajućih mogućnosti simulacija rada mreža istovrsnih entiteta. Hipoteza će biti dokazana na primjeru P2P mreže realnog sustava primjenom simulacijskog modeliranja. Uz programske simulatore mreža koji su zadovoljavajućih mogućnosti, potrebno je ispitati i generičke simulatore kao i klasične alate simulacijskog modeliranja. Pomoćna hipoteza: H2: Postojećim programskim alatima za simulaciju rada mreža istovrsnih entiteta nedostaju određene značajke koje ih čine primjerenijima za simulaciju mreža istovrsnih entiteta. Realni sustavi nisu uniformirani glede kriterija opisa mreža istovrsnih entiteta. To se mora odraziti i na odabir odgovarajućih, odnosno za određeni realni sustav najprikladnijih, simulatora mreža istovrsnih entiteta, ako su postojeći dovoljno upotrebljivi.

Tedo Vrbanec FOI, 2010. 7 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

1.5 STRUKTURA RADA

Ovaj je rad podijeljen u sedam dijelova. U prvom, uvodnom dijelu, obrazlaže se motivacija odabira teme i njena važnost, uzroci nastanka sustava istovrsnih entiteta i postojeće definicije. Opisuje se problem istraživanja, ciljevi istraživanja i postavljaju hipoteze. Opisuju se metode i postupci te ukratko daje pregled rada po poglavljima. Drugi dio opisuje sustave istovrsnih identiteta, njihove opće značajke i povijesni razvoj. Vrši se usporedba prevladavajućih modela komunikacije današnjeg Interneta: modela klijent-poslužitelj te modela ravnopravnih istovrsnih entiteta. Uspoređuje se i količina prometa koja se generira korištenjem HTTP protokola kao glavnog komunikacijskog protokola modela klijent-poslužitelj te P2P protokolima. Prikazuje se povijest razvoja P2P sustava i razlučuju pojedine generacije. Definiraju se vrste i podvrste mreža istovrsnih entiteta, za P2P sustave specifične pojavnosti poput distribuirane tablice raspršivanja te se razgraničavaju pojmovi prekrivajuće mreže i komunikacijske podmreže. Načinjena je i taksonomija mreža istovrsnih entiteta te prikazana poslovna i znanstvena primjena mreža istovrsnih entiteta. Ovaj dio rada uključuje protokole i aplikacije P2P sustava, njihovo stanje i odnose, daje se njihov pregled i usporedba. Treći dio daje kriterijsku analizu rada mreža istovrsnih entiteta, ciljeve korištenja P2P mreža, parametre kojima se one opisuju. Poglavlje rezultira evaluacijom značaja parametara P2P mreža. Četvrti se dio bavi simulacijama i simulatorima P2P sustava. Daje se nužan okvir simulacijskog modeliranja s naglaskom na specifičnosti simulacijskog modeliranja P2P sustava, tj. zbog čega takve simulacije predstavljaju izazov. Simulacijsko modeliranje P2P mreža svrstava se unutar poznatih kategorija kao stohastičko, dinamičko, diskretno i distribuirano računalno modeliranje sustava. Te se kategorije, kao i njihove pandane, prethodno ukratko objašnjava. Objašnjava se i metoda vrednovanja P2P simulatora, a zatim se daje pregled simulatora P2P sustava korištenih u istraživanju. Poglavlje završava parametriziranjem opisa P2P simulatora korištenih u istraživanju te kriterijima njihove usporedbe i vrednovanja. Peti dio prikazuje model P2P simulatora, njegove funkcionalne i nefunkcionalne zahtjeve. Koncepcijski model se raslojava na slojeve: mrežni, protokolarni, aplikativni i korisničkog ponašanja, kojima se upravlja i komunicira putem grafičkog korisničkog sučelja.

Tedo Vrbanec FOI, 2010. 8 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

U šestom se dijelu sažimaju rezultati i daju zaključci. Uočavaju se i prikazuju otvorena pitanja, područja budućeg rada i iznose preporuke za daljnja istraživanja. Prilozi detaljnije obrađuju neka bitna, a ipak granična područja odnosno pojmove za čije je razlaganje nedostatan i neprimjeren prostor fusnota. Tri priloga se redom bave distribuiranim računalnim sustavima, ARPANET-om te kategorijama primjena sustava istovrsnih entiteta s primjerima.

Tedo Vrbanec FOI, 2010. 9 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

2 SUSTAVI ISTOVRSNIH ENTITETA

Sustavi istovrsnih entiteta predstavljaju primjer distribuiranog sustava u kojima potrebne podatke te tražene računalne resurse posjeduje mnoštvo računala na Internetu. U tom sustavu svi sudionici pružaju uniformnu uslugu. Njihova pojava „prirodna“ je posljedica:

• slobode Interneta kao komunikacijskog medija izvan kontrole (većine) država,

• vrlo brzog rasta broja računala i korisnika na Internetu,

• ljudske težnje i potrebe za razmjenom datoteka. Od 1999. godine razvijeno je nekoliko P2P tehnologija koje omogućuju korisnicima razmjenu velikih količina podataka velikim brzinama [8][9][10]. Mreže na kojima se temelje nazivaju se mreže istovrsnih entiteta ili P2P mreže. Ideja P2P sustava temelji se na jednakosti korisnika odnosno računala, gdje je svaki korisnik ujedno i klijent i poslužitelj. Kako bi se moglo što kvalitetnije opisati P2P sustave i njihova obilježja, postoji potreba za simulacijama P2P sustava. Simulacijom se može prikazati funkcionalnost sustava. Simulacije su kod P2P sustava poželjne, jer je zbog kompleksnosti, brzog napredovanja ka boljim rješenjima te vremena koje je potrebno da se uoče dobre i loše strane sustava, teško ocijeniti ponašanje novog P2P protokola ili aplikacije u stvarnom svijetu.

2.1 OPĆE ZNAČAJKE

Internet je postao dio svakodnevnice i civilizacijska tekovina. Nakon početne ravnopravnosti čvorova na Internetu, nastala je potreba te realiziran koncept klijent- poslužitelj, koji je postao dominantan kroz duže vrijeme. Snaženje računalne i komunikacijske moći prosječnog računala te povećanjem njihova broja, Internet se ponovo postupno decentralizira. Koncept istovrsnih, ravnopravnih računala i pripadajućih distribuiranih sustava postao je „logička antiteza paradigmi klijent-poslužitelj“ [11].

2.1.1 USPOREDBA MODELA P2P I KLIJENT-POSLUŽITELJ

P2P sustav se temelji na sljedećem konceptu: kapacitet ukupnog spremišta podataka, računalna snaga i širina komunikacijskog pojasa dobiva se od sudionika, tj. krajnjih čvorova mreže [12]. Umjesto na vlastite kapacitete, mreža se oslanja na snagu računala krajnjih korisnika mreže i komunikacijski kanal kojim su oni povezani s drugim

Tedo Vrbanec FOI, 2010. 10 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta računalima u mreži. Za razliku od arhitekture klijent-poslužitelj u kojoj su neka računala (poslužitelji) predodređena da služe drugima (klijentima), ovdje svaka radna stanica ima međusobno podjednak dio odgovornosti i mogućnosti. Time se gubi razlika između klijenta i poslužitelja. Prednosti ovakvog sustava su u tome što ukupni kapacitet spremišta podataka, ukupna širina komunikacijskog pojasa i ukupna računalna snaga rastu sukladno porastom broja računala koji čine tu mrežu. Prednosti P2P modela u odnosu na model klijent-poslužitelj [13]:

• dinamičko balansiranje opterećenja,

• dinamički ažurirani repozitoriji podataka,

• redundantnost sadržaja,

• otpornost na greške u prijenosu,

• adresiranje usko vezano uz sadržaj,

• lakše pronalaženje sadržaja,

• otpornost na ispade središnjih točaka1 i

• minimalni utjecaj mrežne topologije na rad P2P sustava. Nedostaci P2P modela u odnosu na model klijent-poslužitelj [13]:

• problematična kvaliteta usluge (engl. QoS):

◦ nesigurna dostupnost,

◦ nesigurna dostava sadržaja,

◦ nesigurna brzine dostave,

◦ neefikasni algoritmi pretraživanja u odnosu na model klijent-poslužitelj,

• nedostatak kontrole [14]:

◦ nema garancije da će određeni čvor u određeno vrijeme imati pristup određenom sadržaju,

◦ nema pouzdane kontrole vrste sadržaja,

◦ nema garancije da su deklarirani i stvarni sadržaj jednaki,

◦ provjera malignosti sadržaja ostavljena je krajnjim čvorovima/korisnicima,

• nedovoljna razvijenost sustava povjerenja i reputacije [15]. Kao što je već rečeno u predgovoru, danas se P2P mreže koriste za:

• dijeljenje resursa,

• razmjenu datoteka (engl. ),

• razmjenu podataka (engl. Data Sharing),

1 To su poslužitelji u klijent-poslužitelj arhitekturi.

Tedo Vrbanec FOI, 2010. 11 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

• publiciranje sadržaja (engl. Content Publishing),

• pretraživanje, preuzimanje i distribuciju sadržaja (engl. Content Searching, Retrieval and Distribution),

• spletnu obradu (engl. Grid Computing),

• trenutno dopisivanje (engl. Instant Messaging),

• distribuiranu pohranu (engl. Distributed Storage),

• distribuirane mrežne usluge (engl. Distributed Network Services),

• video na zahtjev (engl. Video on Demand, VoD) te

• Internet telefoniju (engl. Voice over IP, VoIP). To je potrebno ponovo naglasiti stoga jer se na P2P sustave često gleda s predrasudama, kao mjesto gotovo isključivo nelegalnih ili problematičnih aktivnosti razmjene raznovrsnih sadržaja između korisnika; mjesto kršenja zakonskih i moralnih normi. To je zacijelo najrašireniji motiv korištenja mreža istovrsnih entiteta, ali one mogu koristiti, (i koriste se), i za druge, vrlo korisne i legalne namjene. Razmjena podataka u obliku datoteka, kao najviše korišteni način korištenja P2P sustava, je takav način suradnje korisnika P2P sustava pri kojem oni posredno ili neposredno pretražuju računala drugih korisnika tražeći određene datoteke. Obično svaki korisnik ima mogućnost odrediti koje dijelove datotečnog sustava nudi za razmjenu, a ponekad je za sudjelovanje u nekoj P2P mreži nužno da korisnik dijeli, (daje na preuzimanje drugim korisnicima), određenu minimalnu količinu podataka. Poslovni subjekti također sve više koriste P2P tehnologiju. Razlozi su raznoliki. Nekima je, primjerice, financijski neisplativo distribuirati svoje digitalne proizvode na konvencionalan način. Zakup širokopojasnog komunikacijskog kanala ni u današnje doba nije jeftin, kao ni potrebna (i redundantna) računalno komunikacijska oprema (ili njezin najam). Troškovi su to viši što je veći broj korisnika. Neka poduzeća su se stoga našla pred troškovnim zidom: konvencionalni način distribucije novih inačica programskih proizvoda, npr. pogonskih programa (engl. driver) za matične ploče ili grafičke kartice postao je usko grlo, korisnici postaju nezadovoljni nemogućnošću pristupa stranicama proizvođača ili praktičnom nemogućnošću (sporošću) preuzimanja datoteka s njihovih stranica. Jedno moguće rješenje je povećanje komunikacijskih kapaciteta, multipliciranje poslužiteljskih sustava i otvaranje podružnica diljem svijeta koje mogu biti i virtualne1. Drugo moguće rješenje je distribucija putem neke od postojećih P2P tehnologija ili stvaranje vlastite. Ovo potonje ne izgleda

1 Virtualna podružnica u ovom kontekstu podrazumijeva zakup poslužitelja i komunikacijske veze na nekoj od brojnih komercijalno raspoloživih farmi poslužitelja.

Tedo Vrbanec FOI, 2010. 12 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta isplativo, ali može biti nužno u slučaju da se želi implementirati neka vlastita sigurnosna ograničenja. Tako svaki korisnik koji preuzima datoteke ujedno postaje dio odašiljačke strukture te od njega drugi korisnici mogu preuzimati dijelove koje je on do tada preuzeo; on sam od trećih korisnika preuzima dijelove koje su drugi preuzeli, a on još nije. Tako se jedan komunikacijski kanal brzo širi kao zbroj svih predajnih komunikacijskih mogućnosti svih korisnika. P2P sustav je najčešće tako načinjen da različitim korisnicima daje različite dijelove datoteka te tako vrlo brzo negdje na Internetu postoji cijela kopija datoteke, a da pri tome nije nužno da itko ima cijelu kopiju. Tako su korisnici prisiljeni i dalje sudjelovati u razmjeni. Ukupni komunikacijski kanal se dinamički širi sukladno broju zainteresiranih korisnika te se dinamički skuplja smanjenjem broja zainteresiranih korisnika, kada ionako prestaje potreba za velikom širinom komunikacijskog kanala. Klasičan primjer uporabe su distribucije operacijskih sustava koje, iako većinom besplatne (rezultat napora volonterskih udruga i organizacija), neka poduzeća1 naplaćuju te tako garantiraju svoju stručnu podršku koja im je glavni izvor prihoda. Neke distribucije drugačije ne mogu funkcionirati, a druge svojim korisnicima preporučuju korištenje P2P sustava poput BitTorrenta, iako imaju i klasične načine distribucije programskih sustava [17]. Štoviše, sve je više korisnika svjesno da je preuzimanje putem P2P sustava pouzdanije2 od preuzimanja neposredno HTTP ili FTP protokolom gdje se veza može prekinuti tijekom prijenosa. Naime, ne koriste svi korisnici programsku podršku koja omogućuje nastavak prekinutog preuzimanja; mnogi niti ne znaju da takva postoji. Kod mrežnog računanja3, neiskorišteno procesorsko vrijeme tj. potencijalna računalna snaga mnoštva računala može biti od ogromne koristi kod primjena kod kojih je potrebno intenzivno računalno procesiranje. Ukoliko postoji javni interes4, istraživačkim projektima članovi dobrovoljci ustupaju neiskorištene resurse svojih računala.5 Ovdje se pod resursima poglavito misli na korištenje procesora i radne memorije, ali se u određenoj manjoj mjeri za rad P2P aplikacije koristi i diskovni prostor. Najčešći primjeri upotrebe raspodijeljenog procesiranja pomoću P2P mreža je istraživanje ljudskog genoma, istraživanja na području lijekova protiv raka, financijske i biotehnološke primjene.

1 Primjer takve kompanije je RedHat Inc.[16] 2 P2P protokoli s lakoćom rješavaju probleme prekida veza s trenutnim davateljem ili davateljima. 3 Mrežno računanje, engl. Grid. 4 Preciznije: od javnosti prepoznat interes. 5 Obično se neiskorištena računalna snaga daje na korištenje nakon što je računalo neko vrijeme nezaposleno, tj. inicijalizacijom rada tzv. „spasitelja ekrana“ (engl. screen saver).

Tedo Vrbanec FOI, 2010. 13 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Kod sustava dopisivanja trenutnim porukama1, programske aplikacije i protokoli omogućuju članovima razmjenjivanje tekstnih poruka u stvarnom vremenu. Danas postoji veći broj takvih sustava:

• .NET Messenger Service (MSN), • QQ,

• OSCAR (AIM/ICQ/.Mac), • Session Initiation Protocol (SIP),

• XMPP (Jabber, Google Talk), • Bonjour,

• Gadu-Gadu, • Tlen,

, • ,

• MySpaceIM, • Skype,

• Novell GroupWise, • NateOn,

• SILC, • SNPP,

• Yahoo!, • Napster,

• Zephyr, • WinMX Peer Network (WPN).

• Lotus Sametime, Velika produktivnost koju omogućuju trenutne poruke nosi i veliki rizik za one organizacije koje dovoljno ne brinu o svojoj sigurnosti [18]. Među učestale prijetnje ubrajamo programsku podršku čiji je cilj pretvaranje računala u tzv. botove ili zombi računala, te stvaranje BotNet mreža računala pod tuđom, zlonamjernom „vlašću“, te aktiviranje DDoS ili drugih napada na proizvoljni cilj u proizvoljnom trenutku, a bez znanja vlasnika/korisnika2 ili praćenje rada korisnika3. Zombi računalima (botovima) što čine BotNet mrežu, koja je meka za kriminalne aktivnosti, često se upravlja nekim sustavom trenutnih poruka [18]. Distribuirana pohrana podataka predstavlja mrežu u kojoj korisnik pohranjuje svoje podatke na brojne čvorove mreže. Odnos je u pravilu recipročan, pa tako svaki član - korisnik dozvoljava drugim korisnicima da koriste njegovo računalo za pohranu svojih podataka. Ovisno od tehnološke realizacije, podaci mogu ali i ne moraju biti dostupni drugim korisnicima mreže. Ipak, većina P2P mreža nema distribuiranu pohranu podataka te su korisnički podaci dostupni smo onda kada je korisnik spojen na mrežu. Kod sustava poput BitTorrent, moguće je da sadržaj čiji vlasnik trenutno ili stalno nije na mreži i dalje

1 Trenutne poruke, engl. Instant messaging. 2 Neznanje korisnika ne abolira istog od odgovornosti. To znači da ukoliko se dokaže da je napad izvršen s računala korisnika koji nije znao da mu je računalo dio BotNet mreže, on (korisnik) ipak snosi odgovornost za štetu učinjenu s njegovog računala. 3 Ovdje nije riječ samo o gotovo benignom praćenju rada korisnika radi promotivnih akcija već i o kriminalnom praćenju korištenja broja kreditnih kartica korisnika koje on upisuje prilikom on-line transakcija.

Tedo Vrbanec FOI, 2010. 14 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta bude dostupan preko drugih korisnika koji su djelomično ili u cijelosti preuzeli sadržaj. Kod sustava poput Freeneta sva su računala ujedno i izvori datoteka za sve druge korisnike. Sustavi koji implementiraju distribuiranu pohranu podataka, koriste tehnike detekcije pogrešaka te njihova ispravljanja. Tako neki sustavi poput Parchive koji se koristi kod NNTP, koristi FEC tehniku za rekonstrukciju originalnih datoteka kada su dijelovi datoteke oštećeni ili nedostupni. Drugi pak sustavi jednostavnije nalažu ponovno preuzimanje datoteke, ali obično iz drugog izvora. Obilježja su distribuirane pohrane podataka:

• redundantnost pohranjenih podataka1,

• ogroman kapacitet pohrane2,

• anonimnost korisnika kod kojeg su pohranjene datoteke3 i

• upravljivost4. Primjeri sustava distribuirane pohrane podataka su BitTorrent, Chord project, GNUnet, FreeNet, NNTP, Mnet i drugi. P2P sustavi imaju mnoštvo korisnika koji u većem obimu distribuiraju video sadržaje [19]. Da bi ih korisnici mogli vidjeti, uglavnom ih u cijelosti trebaju preuzeti, što podrazumijeva da za početak prikazivanja trebaju čekati dugo vremena. Noviji P2P sustavi dokazuju da je ostvarivo uživo distribuirati audio-vizualne sadržaje velikom broju korisnika koristeći P2P sustave dakle pružati uslugu video na zahtjev, engl. VoD5. Ipak, znatno je realnije ustanoviti uslugu „umalo“ ili „gotovo“ video na zahtjev, engl. nVoD6. Naime, zbog veličine sadržaja realnije je (malo) smanjiti očekivanja te dozvoliti prihvatljiv vremenski odmak od prezentacije video sadržaja do početka njegova gledanja kod samog korisnika; nVoD ipak omogućava da korisnik gleda video još tijekom njegova preuzimanja. Štoviše, korisnik ima mogućnost gledanja videa u proizvoljnom terminu, tj. nije nužno da korisnik uskladi svoje preuzimanje i prikazivanje s trenutkom odašiljanja odnosno početka distribucije. Nadalje, korisnik može gledati bilo koji dio videa, tj. u stanju je mijenjati

1 Jedan je podatak redovito višestruko pohranjen na različitim čvorovima mreže. 2 Ukupan kapacitet pohrane podataka jednak je zbroju kapaciteta svih korisnika, odnosno njihovih računala. 3 Anonimnost nije savršena. Naime, točno se znaju IP adrese čvorova koji razmjenjuju datoteke te se pred pritiskom zakona može od ISP-a doći do imena i prezimena korisnika. Datoteke se spremaju na neke čvorove u P2P mreži, ali je dostupna svakom čvoru, koji samo mora znati referencu na dotičnu datoteku. 4 P2P sustavi omogućavaju lagan i brz pronalazak i dohvat traženih datoteka. Naime, P2P sustavi raspodjeljuju podatke po spremištima raspoređenim po rubovima mreže. Položaj podataka nije poznat čvoru koji zahtjeva podatak i može biti raspodjeljen duž prijenosnog puta - tako se u potpunosti gubi princip hostanja (udomljavanja) podataka. Obilježje upravljivosti uključuje i dva problema: problem pouzdanosti prijenosa cjelovite datoteke i problem odgovornosti za ponuđene podatke. 5 VoD = video na zahtjev, engl. Video on Demand. 6 nVoD = umalo video na zahtjev, engl. Near Video on Demand.

Tedo Vrbanec FOI, 2010. 15 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta mjesto prikazivanja unaprijed i unazad1. Distribucija video sadržaja na zahtjev zahtjevna je prema komunikacijskom kanalu koji je potreban usluzi, ali i prema sklopovlju (velika količina ulazno-izlaznih operacija nad tvrdim diskom, procesorska obrada podataka kako bi ih se prilagodilo prijenosu te uz to vezana potrošnja radne memorije). Pod pretpostavkom da su video sadržaji u MPEG-22 formatu, pojedini korisnik treba alokaciju od oko 6 Mbps, a video poslužitelj bi za simultano posluživanje tisuću korisnika trebao alocirati širinu komunikacijskog kanala od 6 Gbps. Pored toga teškog komunikacijskog zahtjeva3, očito je da odgovarajuću poslužiteljsku snagu može dati samo grozd poslužitelja, što je dodatan trošak implementacije, održavanja i energije. Ova situacija nameće potragu za rješenjima koji smanjuju potrebe za komunikacijskim kanalom kod usluge videa na zahtjev [20]. Rješenja se mogu klasificirati u tri grupe: proaktivna, reaktivna i P2P rješenja. Proaktivnim rješenjima distribuira se svaki video zapis prema fiksnom rasporedu i ne ovisi o broju zahtjeva za distribucijom video sadržaja - tu se koriste tzv. broadcasting4 protokoli. Reaktivna grupa rješenja prijenos podataka obavlja samo kao reakciju na korisnički zahtjev te stoga ne koriste komunikacijski kanal ukoliko za time nema potrebe. S druge strane, ukoliko se javi veći broj korisnika, nastaje zagušenje te korisnici ne mogu preuzimati sadržaje. Oba rješenja pretpostavljaju jasno razgraničenje računala prema funkcijama koje obavljaju na poslužitelje koji nude sadržaj i na korisnike koji ga konzumiraju. Na taj se način ne mogu iskoristiti komunikacijske mogućnosti davanja (engl. upload) korisnika i time utjecati na smanjenje opterećenja poslužitelja. P2P rješenja koriste dijelove videa koji se već nalaze kod drugih korisnika pa novi korisnici uživaju veći komunikacijski kanal i poslužiteljsku snagu, s obzirom da je ona disperzirana na druge čvorove mreže. VoIP tehnologija doživljava stalan rast eksperimentalnih i komercijalnih primjena i korisnika [21][22][23]. VoIP je protokol optimaliziran za prijenos glasovnih poruka putem

1 Govoreći o videu na zahtjev, moramo spomenuti i tehniku „push(ed) video on demand“. Tehniku koriste neki davatelji video usluga kod sustava kojima nedostaje interaktivnosti, a čime simuliraju pravi sustav video na zahtjev. U ovom se sustavu koristi PVR - osobni video rekorder za automatsko snimanje odabranoga programa, najčešće u noćno vrijeme kada su komunikacijski resursi manje opterećeni. Korisnici tako mogu gledati video sadržaj u vrijeme kada im odgovara. S obzirom da snimljeni sadržaj zauzima prostor na tvrdom disku rekordera, snimljeni se materijal obično briše nakon tjedan dana kako bi se oslobodio prostor za nove snimke programa. Tako je kod pVoD sustava manja fleksibilnost u odabiru programa u odnosu na pravi sustav video na zahtjev. 2 MPEG (engl. Moving Picture Experts Group) je naziv obitelji standarda korištenih za kodiranje audio- vizualnih sadržaja poput filmova, videa ili glazbe i to u digitalnom komprimiranom formatu. Korištenjem sofisticiranih tehnika kompresije, kodirani sadržaji (datoteke) su znatno manje veličine od originalnih, a prihvatljive kvalitete. 3 Danas su u Republici Hrvatskoj najbrže komunikacijske veze od 10 Gbps koje unutar zagrebačkog prstena interno ostvaruje CARNet. 4 Broadcasting (engl.) = emitiranje, neusmjereno odašiljanje, razašiljanje.

Tedo Vrbanec FOI, 2010. 16 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Interneta ili neke druge mreže s prespajanjem paketa [24]. VoIP sustavi prenose telefonske signale kao digitalni audio zapis, obično smanjene veličine1. S obzirom da se koristi za prijenos glasovnih poruka, u praktičnoj je uporabi više izraza koji su podjednakog značenja: IP telefonija (engl. IP Telephony), Internet telefonija (engl. Internet Telephony), glas putem širokopojasne mreže (engl. Voice over Broadband), širokopojasna telefonija (engl. Broadband Telephony) i širokopojasni telefon (engl. Broadband Phone). Zametak VoIP telefonije može se pratiti od eksperimentalnog mrežnog glasovnog protokola (engl. Network Voice Protocol), projekta ostvarenog još u vrijeme mreže ARPANET2, 1973. godine. Razlikujemo pozive između VoIP korisnika te one između VoIP i PSTN korisnika. Najjeftiniji, a ponekad i besplatni su pozivi tipa VoIP-VoIP. Pozivi VoIP-PSTN su popularnih cjenovnih razreda, a najskuplji su klasični PSTN-PSTN pozivi. Stoga korisnici vole prelaziti na VoIP telefoniju, iako u stvarnosti ona može imati manju kvalitetu komunikacije, koja se ogleda u mogućim i/ili učestalijim šumovima, jednosmjernim (engl. simplex) prekidima komunikacije3 ili neugodnom pojavom jeke. Zbog ekonomičnosti za krajnje korisnike, VoIP tehnologija koja se temelji na P2P mrežama postaje sve popularnija pa raste broj aplikacija koje koriste ovaj hibrid posebnih svojstava. Ipak, [25] ovdje se koristi gotovo besplatna uporaba Interneta, tj. komunikacijskog kanala kojeg korisnik plaća svome davatelju Internet usluga (ISP, engl. Internet Service Provider), tj. aplikacija na neki način parazitira na štetu ISP-a. To, opet, ne mora biti dugoročno stanje, jer više nije teško praćenjem sadržaja paketa i markiranjem P2P ili bilo kojeg drugog prometa isti jako zakočiti/usporiti ili čak i potpuno zabraniti. S druge strane, i sami ISP-ovi uglavnom koriste tu uslugu u komercijalnom ili eksperimentalnom obliku. Najpopularnija aplikacija te vrste je Skype. Istraživanja rada ove aplikacije rezultirala su dvojakim zaključcima: negativnim [18][23][25], ali i pohvalnim [26]. Kritike se odnose na sljedeća obilježja: kvalitetu veze, zagušenje mreže, nedostupnost sugovornika, zatvorenost kôda i algoritma enkripcije, neosjetljivost autora aplikacije za usklađivanje njenog rada s načinom rada Interneta, nepoštivanje standarda, centralizirana kontrola mreže i druge kritike, a pohvale se oslanjaju na: stabilnost broja čvorova, mali promet (super)čvorova te na neuobičajeno

1 Poznato je da je za razgovjetno i osobno prepoznatljivo raspoznavanje sugovornika bitno frekvencijsko područje do 4kHz; ostalo je frekvencijsko područje redundantno. 2 Vidjeti prilog: ARPANET. 3 Ovdje se pod jednosmjernom komunikacijom podrazumijeva pojava da jedan od sudionika u razgovoru određeno vrijeme nije u mogućnosti čuti drugoga, pri čemu ne dolazi do potpunog prekida povezanosti nego se ona nakon nekog vremena normalizira.

Tedo Vrbanec FOI, 2010. 17 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta svojstvo super-čvorova da se većina njihova prometa odnosi na HTTP promet, za razliku od drugih P2P mreža gdje super-čvorovi, (gdje postoje), imaju vrlo malo HTTP prometa. Rad se u nastavku fokusira na razmjenu datoteka, kao najzahtjevniju primjenu sustava istovrsnih entiteta, preciznije: najzahtjevniju prema komunikacijskoj podmreži u kojoj se ta razmjena odvija.

2.1.2 USPOREDBA HTTP I P2P PROMETA

Tablica 1 usporedno prikazuje obilježja regularnog web prometa (HTTP) i prometa preko P2P sustava. Mogu se primijetiti velike razlike u obilježjima koje potvrđuju tezu da P2P sustavi ne predstavljaju „nužno zlo“ već komplementarnu uslugu koja je s obzirom na razvoj Interneta i općenito mrežnih komunikacija nastala kao rezultat evolutivnog razvoja.

Tablica 1: Usporedba HTTP i P2P prometa obilježje HTTP promet P2P promet mala velika vrsta i veličina html, css, php, javascript ≈< mp3 ≈ 3,5 – 7MB datoteka 250kB avi ≈ 700MB – 2GB + flash ≈< 500kB DVD video ≈ 1 – 2GB broj veza jedna veza preuzimanja otvaraju mnoštvo simultanih veza trajanje veza kratko trajanje veze veze mogu trajati danima

visoka pouzdanost slaba pouzdanost pouzdanost veze javni poslužitelji sa stalnom privatni korisnici sa ograničenom sposobnošću vezom odgovarajuće brzine povezivanja, tipično od 56kbps do 10Mbps nepredvidljiva dostupnost - sadržaji ovise o volji i dostupnost sadržaja stalno dostupni javni sadržaji mogućnostima povezivanja i pohrane podataka korisnika promjenjivost http sadržaj teži postupnom učestala promjena sadržaja - korisnici teže nabavi sadržaja mijenjanju najnovijih sadržaja širok opseg portova, ulazna vrata (engl. fiksna vrata: port 80 dinamična promjena portova, port) maskiranje prometa kroz port 80 iako sadržaj dijeljen preko P2P sustava ima svoj jednoznačnost HTTP ima jedinstvene URL ID, korisnici često koriste vlastite nazive – datoteke sadržaja adrese za sadržaj istog sadržaja pojavljuju se s različitim imenima asimetričan: mali zahtjev klijenta simetričan: svaka datoteka koja je od nekoga promet rezultira većom količinom preuzeta, nekome je i predana; korisnici su i podataka od poslužitelja primatelji i poslužitelji sadržaja

Tedo Vrbanec FOI, 2010. 18 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

2.2 POVIJEST RAZVOJA I GENERACIJE

Od početaka umrežavanja računala, jedna od glavnih ideja vodilja povezivanja bila je razmjena datoteka koje (isti ili različiti, ali ravnopravni) korisnici imaju na različitim računalima.

2.2.1 POČECI MASOVNIJE RAZMJENE DATOTEKA

Začetak značajnije razmjene datoteka na Internetu može se pratiti pojavom UUCP servisa [27] te Usenet (engl. User Network) servisa [28] 1980-tih godina. Masovnijim korištenjem Interneta najpopularniji način razmjene datoteka između korisnika postao je protokol za razmjenu datoteka - FTP. Anonimni FTP poslužitelji omogućavali su korisnicima prijavu pomoću korisničkog imena anonymous1 i zaporke u obliku adrese e- pošte korisnika2 ili prijavu samo adresom e-pošte. Korisnik bi nakon prijave potražio datoteke koje su mu potrebne te ih prenio FTP protokolom na svoje računalo. FTP poslužiteljima se nakon širenja weba često pristupalo preko Archie poslužitelja koji su imali hipertekstnu web formu putem koje su korisnici olakšano pretraživali sadržaj na najčešće fizički istom FTP poslužitelju. To je ujedno bila jedna od prvih primjena hipertekstnog web sustava za razmjenu datoteka. Napredniji Archie poslužitelji su pretraživali i druge FTP poslužitelje te tako korisniku davali informacije gdje se koja datoteka nalazi, što je bilo posebno korisno u slučaju kada je korisnik na svoje računalo prenio tek dio datoteke te je trebao nastaviti prekinuti prijenos. Danas su Archie poslužitelji tolika rijetkost, da se uz vrlo mali rizik može reći da više ne postoje [29].

2.2.2 RAZVIJENA KONVENCIONALNA RAZMJENA DATOTEKA

Od 1995. do 1997. godine, slobodna razmjena datoteka odvijala se putem dva glavna načina: FTP protokolom i preuzimanjem putem web stranica, HTTP protokolom. Oko 1997. godine aplikacije za slanje trenutnih poruka (engl. Instant Messenger, skraćeno IM) i pripadajuće IM mreže3 postale su najpopularnije sredstvo razmjene datoteka. Tako se jednim sredstvom odvijao i razgovor (engl. Chat), oglasna ploča (engl. Bulletin Board) i razmjena datoteka (engl. File Sharing).

1 Za prijavu su se ponekad koristila i druga korisnička imena, poput ftp, user ili druga jednostavna i uobičajena korisnička imena. 2 Pored adrese e-pošte, umjesto zaporke su se koristile i druge, svima poznate zaporke, poput anonymous, guest, user i dr. 3 Hotline i ICQ bile su prve velike IM mreže i servisi.

Tedo Vrbanec FOI, 2010. 19 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

2.2.3 SUVREMENA MASOVNA RAZMJENA DATOTEKA

Protokoli za logičko povezivanje računala koja su umrežena različitim fizičkim mrežama u distribuirane sustave u uporabu su ušli 1999. godine. Takvi su sustavi zbog ravnopravnosti čvorova koji sudjeluju u komunikaciji nazvani mrežama istovrsnih entiteta ili (engl.) peer-to-peer mrežama (P2P). Dakle, došlo je do pojave koncepta P2P mreža te nešto kasnije i do razdvajanja pojmova P2P mreža1 i P2P klijent2. P2P mreža protokolima omogućava smislene međusobne komunikacije P2P klijenata, većinom s ciljem razmjene datoteka. Prva popularna mreža istovrsnih entiteta bila je Napster. Istoimeni klijent predstavljao je jedini način pristupanja drugim korisnicima na mreži i to se odvijalo jednostavno i neposredno, a za krajnjeg korisnika nije bilo nikakvih problema. Napster je 1999. godine postao glavno sredstvo razmjene datoteka. Promjena je bila izrazita: servis je omogućavao korisnicima preuzimanje datoteka do tada nezamislivom brzinom. Naime, svi koji su preuzeli datoteku i nisu je obrisali ili premjestili u nedjeljivi dio datotečnog sustava, zajedno su dijelili datoteku, te je novim preuzimateljima na raspolaganju bio sve veći kapacitet kanala. Stoga je brzina prijenosa uglavnom ovisila o brzini povezanosti korisnika na Internet preko njegova davatelja Internet usluga (engl. Internet Service Provider). Na vrhuncu slave, Napster mrežu i klijente koristilo je oko 60 milijuna ljudi diljem svijeta koji su razmjenjivali većinom glazbene datoteke. S obzirom na tako velik broj korisnika, autorska su prava postala velik problem te su postala predmetom sudskih procesa čiji rezultat je prestanak rada tvrtke Napster Company. Zbog centralizirane strukture, zaustavljanje rada središnjih poslužitelja trenutno je dovelo do neupotrebljivosti Napster klijenta i Napster mreže. Nova aplikacija pod nazivom WinMX zaživjela je 2001. godine. Njome se pored glazbenih moglo razmjenjivati i datoteke drugih vrsta, poput slika, filmova pa i programska podrška. Iako je koncepcija suštinski ostala ista kao i kod Napstera, povećane su funkcionalnosti mreže i klijenta. Za mrežne administratore, WinMX je predstavljao pravu noćnu moru, jer je za komunikaciju mogao koristiti port 80 koji je standardni port za web promet i stoga se ne može grubo zatvoriti na mrežnom vatrozidu (engl. firewall). Za eliminaciju ovakve vrste prometa potrebni su analizatori mrežnog prometa koji djeluju na aplikacijskoj razini ISO/OSI modela. Razumljivo je da se i u ovom slučaju pojavio problem autorskih prava, ali sada ne samo nad glazbenim datotekama, pa je zabrinutost audio, video

1 P2P mreža je određeni skup pravila i interakcija (protokola) koje povezuju različite P2P klijente. 2 P2P klijent je računalna aplikacija koja komunicira sa drugim aplikacijama posredstvom računalne mreže.

Tedo Vrbanec FOI, 2010. 20 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta i programske industrije ponovo postala visoka. Već 2001. godine došlo je do prvog uhićenja jednog korisnika WinMX-a zbog nezakonitog dijeljenja datoteka s autorskim pravima. Pravna borba vlasnika i nositelja autorskih prava s jedne strane te nositelja i korisnika P2P mreža s druge strane, nastavlja se i dalje. P2P sustavi su se razvijali, te se među njima mogu razlučiti generacijski skokovi koji će u nastavku biti opisani. U suštini, generacijski skokovi se uglavnom preklapaju sa podjelom mreža istovrsnih entiteta po stupnju centralizacije.

2.2.3.1 PRVA GENERACIJA: CENTRALIZIRANI SUSTAVI

Prva generacija P2P sustava svoj je rad temeljila na poslužiteljima koji su služili kao središnje mjesto povezivanja pojedinih čvorova mreže [30], odnosno kao mjesto središnjeg indeksiranja resursa: podataka o tome koje datoteke klijenti dijele s drugim klijentima i brzine povezanosti klijenata1. Korisnik većinom vidi samo jedan poslužitelj, a oni su, prema potrebi i razvijenosti cjelokupnog sustava, transparentno povezani u grozd.

Slika 3: P2P - centralizirani sustav (1. generacija) Izvor: -, OpenP2P.com -- p2p development, development, O'Reilly Media Inc., , (6. kolovoz 2008.)

Da bi čvor2 pristupio mreži i njenim resursima, mora se najprije prijaviti nekom od poslužitelja (slika 3 [31]) na koji, prilikom identifikacije, prijavljuje i popis datoteka koje dijeli sa drugim čvorovima. U slučaju da korisnik čvora treba neki sadržaj, upit koji se

1 Svaki korisnik može biti povezan na sustav s više lokacija. Razumno je zaključiti da na svakoj lokaciji djeluje po jedan klijent, mada je moguće i više. U svakom slučaju, između korisnika i klijenata ne mora biti brojčani odnos 1:1, već vrijedi da je broj klijenata ≥ broju korisnika. 2 Strogo gledajući, klijent je aplikacija koja se nalazi na čvoru. Na čvoru može biti pokrenut jedan ili više klijenata. Na jednom čvoru može biti više korisnika, svaki sa po jednim ili više klijenata. U praktičnom smislu nije potrebno posebno paziti na distinkciju između ova dva pojma, već se najčešće jednostavno govori samo o čvoru, pri čemu se misli na jednog korisnika koji je jednim klijentom povezan s jedne lokacije na mrežu istovrsnih entiteta.

Tedo Vrbanec FOI, 2010. 21 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta sastoji od ključnih riječi, šalje poslužitelju. Poslužitelj pronalazi čvorove i korisnike koji imaju tražene sadržaje te ih nudi na izbor korisniku. Ovaj se nakon izbora (na temelju brzine odziva – pinga i brzine komunikacijskog pojasa koji se nudi), neposredno povezuje sa čvorom, (ili više njih), koji ima, (ili imaju), traženi sadržaj, te započinje njegovo preuzimanje. Prijavu na P2P sustav s jedne lokacije potrebno je učiniti samo jednom, do odjave. Baza podataka koja se vodi kod poslužitelja ažurira se svaki put kada se čvor prijavi ili odjavi sa P2P sustava. Čvor ima punu kontrolu nad vlastitim resursima (podacima i komunikacijskim kanalom), ali je poslužitelj neophodan, kako za traženje resursa drugih čvorova, tako i za objavu/ponudu svojih resursa drugim čvorovima. Pozitivna su obilježja rezultirajućeg centraliziranog sustava:

• dobra alokacija resursa,

• dobro upravljanje mrežom i ukupnim performansama sustava,

• jednostavnost protokola,

• brz odziv sustava. Centralizirani sustav ima i dva negativna obilježja:

• osjetljivost na pad središnjih poslužitelja što za posljedicu ima pad cijelog sustava i

• ograničene mogućnosti proširivanja sustava (skalabilnost). Tipični predstavnici ove generacije su Napster i SETI@Home.

2.2.3.2 DRUGA GENERACIJA: DECENTRALIZIRANI SUSTAVI

Sustavi druge generacije P2P mreža nemaju središnji poslužitelj ili središnje mjesto indeksiranja datoteka i korisnika, ali imaju manje ili više razvijenu strukturu. Svaki je čvor ove mreže ujedno i poslužitelj i klijent (slika 4 [31]).

Slika 4: P2P - decentralizirani sustav (2. generacija) Izvor: -, OpenP2P.com -- p2p development, open source development, O'Reilly Media Inc., , (6. kolovoz 2008.)

Tedo Vrbanec FOI, 2010. 22 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

U ulozi poslužitelja, čvor ima dvije uloge: indeksira lokalne datoteke i usmjerava pristigle upite na druge čvorove. Mrežna je topologija (kao skup veza između čvorova) takvog sustava strogo kontrolirana; datoteke nisu smještene u čvorovima nasumice već na utvrđenim mjestima, a s ciljem da bi se kasniji upiti što lakše izvršili. U slabo strukturiranim sustavima datoteke se smještaju na temelju nekih naznaka, tj. bez nekih strogih, algoritamskih pravila. FreeNet P2P mreža [32] klasičan je primjer takvog sustava. U vrlo strukturiranim sustavima, mrežna topologija i smještaj datoteka su precizno određeni. Takve kontrolirane strukture omogućuju visoku efikasnost prilikom traženja odgovora na upite korisnika, a većinom se oslanjaju na sučelja tipa hash tablica. Druga je generacija „čisti P2P model“, tj. ne zahtijeva nikakvu središnju strukturu. Naziva se još i „decentraliziranim ali strukturiranim sustavom“ [30]. Zahtjev korisnika prema nekom resursu obavlja se po principu usmjerenog preplavljivanja (engl. flooding). Naime, svaki je čvor ove vrste P2P mreže spojen na nekoliko drugih čvorova. Svaki zahtjev za nekim resursom (upit) prenosi se do svih drugih čvorova s kojima postoji neposredna povezanost. To ima za posljedicu velik mrežni promet, jer broj upita raste eksponencijalnom brzinom: primjerice kada bi čvor bio povezan s četiri druga čvora, a ti čvorovi svaki s četiri sljedeća, u petoj iteraciji već imamo 45=1024 upita. Stoga i podsjeća na preplavljivanje (upitima). Tehnički gledajući, daleko najčešći operacijski sustavi za osobna računala (Windows) imaju ograničenje broja simultano otvorenih veza s drugim računalima na deset veza, a s pretpostavkom da se komunikacija odvija dvosmjerno, četiri do osam veza čine realni okvir za bazu tog eksponencijalnog širenja. Tipični predstavnici ove druge generacije P2P mreža su Gnutella i NeuroGrid. Negativna obilježja decentraliziranog P2P sustava su:

• velik mrežni promet1,

• razmjerno dugotrajno vrijeme odziva2,

• ovisnost brzine prijenosa o brzini mrežne povezanosti čvorova mreže. Pozitivno je obilježje da nema središnjih točaka kako zastoja tako ni kontrole. Očito je da su prioriteti programera druge generacije P2P sustava bili rješavanje tehničkih, a posebice pravnih problema koji su rezultirali prestankom rada Napstera. To je i glavni razlog korištenja decentralizirane arhitekture, što je s druge strane dovelo do negativnih obilježja drugačije vrste. Kako si se zaobišlo središnje indeksiranje prisutno kod

1 Velik je mrežni promet generiran upitima korisnika koji se prenose do svih drugih čvorova s kojima je pojedini čvor spojen. 2 Veliko vrijeme odziva u odnosu na centralizirani sustav.

Tedo Vrbanec FOI, 2010. 23 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Napstera, u decentraliziranim sustavima poput Gnutelle svi čvorovi sudjeluju u pretraživanju. Međutim, posljedica toga je i generiranje velike količine mrežnog prometa i usporavanje pretraživanja.

2.2.3.3 TREĆA GENERACIJA: HIBRIDNI SUSTAVI

Treća generacija P2P sustava rezultat je nastojanja da se minimiziraju negativna, a zadrže pozitivna obilježja prve dvije generacije: hibridna arhitektura kombinira efikasnost i elastičnost centralizirane mreže, a ujedno uklanja mogućnost zastoja ili potpune kontrole središnjih točaka (slika 5 [31]). Sustav automatski uspostavlja hijerarhijsku strukturu formirajući okosnicu tzv. super-čvorova koji imaju ulogu središnjeg poslužitelja za indeksiranje. Kada se klijent prijavi u sustav, to se realizira na način da se stvori neposredna veza s jednim super-čvorom koji zatim prikuplja i sprema informacije o novoprijavljenom čvoru i njegovu sadržaju dostupnim za razmjenu. Super-čvorovi su klijenti koji su duže vrijeme uključeni (engl. uptime), imaju veliku brzinu pristupa Internetu, javnu IP adresu, snažan procesor i veliku količinu radne memorije. Super- čvorovi čuvaju podatke o drugim super-čvorovima i klijentima spojenima na mrežu. U ovoj generaciji P2P sustava, svaki korisnik P2P klijenta može i ne znajući postati super- čvor1. Klijent koji ima ulogu super-čvora prihvaća upite ograničenog broja drugih super- čvorova2.

Slika 5: P2P - hibridni sustav (3. generacija) Izvor: -, OpenP2P.com -- p2p development, open source development, O'Reilly Media Inc., , (6. kolovoz 2008.)

1 To ne mora nužno biti i istina za sve vrste klijentskih aplikacija, s obzirom da neke za takvo što traže pristanak korisnika. 2 Orijentacije radi, kod FastTrack protokola koji je temelj više P2P sustava, broj veza sa drugim super- čvorovima ograničen je na 200.

Tedo Vrbanec FOI, 2010. 24 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Pozitivna su obilježja treće generacije P2P sustava:

• manja količina prometa u odnosu na decentralizirane mreže,

• smanjenje vremena odziva na upit u odnosu na decentralizirane mreže,

• visoke performanse sustava koje osiguravaju super-čvorovi,

• nema središnjih točaka kako zastoja tako ni kontrole. Aplikacije koje su tipični predstavnici klijenata 3. generacije su , i .

2.2.3.4 ČETVRTA GENERACIJA: DANAŠNJI RAZVOJ

Prve tri generacije P2P mreža pripadaju grupi tzv. nestrukturiranih mreža iako neke imaju manje ili više razvijenu strukturu. U četvrtoj generaciji dominiraju strukturirane P2P mreže. Strukturirane mreže imaju takve protokole pomoću kojih se umjesto klasičnog „preplavljivanja“ koriste smisleni upiti. Dinamička vrata (engl. portovi), uvedeni od Kazaae u trećoj generaciji P2P mreža, u četvrtoj generaciji postaju pravilo. Štoviše, ukoliko mreža ne može ostvariti zadovoljavajuću povezanost preko vrata s brojevima od 1024 do 65535, najčešće zbog mrežnog vatrozida, ovi protokoli pokušavaju zaobići vatrozid koristeći maskiranje prometa preko vrata 80 (koja se standardno koriste za HTTP promet) ili vrata 25 (SMTP promet) koja se na vatrozidu u pravilu ne zatvaraju jer je njihova otvorenost neophodna za normalan mrežni rad korisnika (web i e-mail promet). Vezano uz to, nekadašnja jednostavna kontrola dopuštene vrste prometa danas je znatno kompliciranija: umjesto kontrole prometa po vratima, sada je pakete prometa potrebno analizirati na aplikacijskoj razini, što je (još) poprilično velik zahtjev u pogledu znanja osoblja koje bi selekciju dopuštenog prometa trebalo izvršiti, složenosti i cijene programske podrške koja bi tu zadaću radila, te u pogledu potrebnih dodatnih računalnih resursa za ostvarenje kontrole. P2P protokoli prethodnih generacija često su zahtijevali da je objekt u cijelosti preuzet kako bi tek onda mogla početi predaja. Kod protokola četvrte generacije u pravilu vrijedi sljedeće:

• jednu datoteku može istovremeno preuzimati više čvorova,

• datoteke se fragmentiraju u jednake dijelove, koji se mogu preuzimati od više čvorova,

• predaja već primljenih dijelova te preuzimanje još nepreuzetih dijelova obavljaju se istovremeno.

Tedo Vrbanec FOI, 2010. 25 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Rezultat svega toga je pojačano raspršivanje sadržaja, a što je neka datoteka više razasuta po Internetu (preciznije, nekoj P2P mreži), to ima više izvora za preuzimanje i predaju. Već u ranoj fazi pojave datoteke na mreži, ona se može preuzimati od mnoštva čvorova, s obzirom da je svaki preuzeti djelić datoteke odmah na raspolaganju za daljnja preuzimanja.

2.3 MREŽE ISTOVRSNIH ENTITETA

Mreže računala općenito, pa tako i mreže istovrsnih entiteta za svoj rad koriste protokole koji omogućuju i determiniraju komunikaciju između čvorova mreže. U praksi, mreže u pravilu dobivaju ime prema protokolu koji koriste. Mreže istovrsnih entiteta su po svojoj naravi samožive; one koriste skalabilne protokole koji stvaraju distribuirane sustave, danas bez središnjih mjesta zastoja odnosno s mnoštvom super-čvorova koji su garancija normalnog rada P2P mreže, nasuprot središnjim poslužiteljima iz prošlosti. Vratimo li se u doba ARPANET-a, ideja vodilja njegova stvaranja bila je u dijeljenju resursa te povezivanju i komunikaciji ravnopravnih računala. Klijent-poslužitelj arhitektura tada nije postojala. USENET (mrežne novine), prvi su korak prema onome što danas percipiramo kao mreže istovrsnih entiteta. Naime, kod mrežnih novina se datoteke kopiraju između računala bez neke središnje kontrole ili upravljačke strukture. Protokol koji se u početku koristio, UUCP, radi tako da se jedno računalo automatski poveže s drugim te razmjeni datoteke. Kasnije se počeo koristiti, (a i danas se koristi), NNTP protokol koji omogućuje nekom računalu, (koje je ujedno poslužitelj), otkrivanje novih grupa i razmjenu poruka. USENET je dakle distribuirana mreža poslužitelja koji međusobno razmjenjuju poruke. Sličan primjer korištenja mreža istovrsnih entiteta je i DNS sustav kojeg čine poslužitelji koji su ujedno i klijenti i poslužitelji te zajedno opslužuju i održavaju distribuiranu bazu podataka povezujući mnemonička imena računala s njihovim IP brojčanim ekvivalentima. Mreže istovrsnih entiteta vrlo su zanimljive kako prosječnim Internet korisnicima, tako i profesionalcima kojima su domena profesionalnog bavljenja računalne mreže. P2P aplikacije danas pripadaju klasi programskih proizvoda koji su među najpopularnijima po broju instalacija i broju korisnika. Mnoge su poslovne primjene P2P mreža. Na mnogim se web stranicama promovira uporaba P2P sustava prilikom preuzimanja većih sadržaja. P2P tehnologija se često smatra

Tedo Vrbanec FOI, 2010. 26 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta budućnošću Interneta, a ona je već danas po količini prometa prevladavajuća Internet tehnologija. To ipak nije Internet tehnologija bez koje se ne može. Štoviše, može se sporiti čak i nužnost njezina postojanja, ali mnogi je današnji korisnici smatraju jednom od temeljnih. P2P tehnologije postoje od 1999. godine. Ipak, unatoč tome što više odavno nisu novost, još uvijek „obećavaju“ da će temeljito promijeniti budućnost umrežavanja i, mora se priznati, donekle ispunjavaju tu viziju iako nije lako predvidjeti kako će se u budućnosti dalje razvijati. Usputno njihovu razvoju, stvorile su se mnoge kontroverze zbog pravnih pitanja oko autorskih prava i načina korištenja mrežnih resursa. Zaključno, mreže ravnopravnih, istovrsnih entiteta postoje od početaka umrežavanja računala. Vrlo često ni sami nismo svjesni da su neki oblici povezivanja koje svakodnevno koristimo zapravo mreže istovrsnih entiteta; mrežom povezana ravnopravna računala.

2.3.1 TRADICIONALNE MREŽE ISTOVRSNIH ENTITETA

P2P, engl. Peer-to-Peer, u doslovnom prijevodu ima značenje veze „čvor prema čvoru“, a sadržajno „veza ravnopravnih računala“, vrsta je mrežne povezanosti računala koja imaju jednaka prava i obaveze. Po tome se razlikuje od arhitekture klijent-poslužitelj u kojoj su neka računala predodređena služiti drugima. Tradicionalno, računala su se u P2P mrežama fizički smještala u relativnoj blizini te su koristila slične mrežne protokole i programsku podršku. Prije nego što je umrežavanje računala postalo uobičajeno i u domaćinstvima, računala su se po principu P2P tehnologije uglavnom umrežavala u manjim poduzećima i obrazovnim institucijama.

2.3.2 KUĆNE MREŽE ISTOVRSNIH ENTITETA

Većina današnjih kućnih mreža su P2P mreže, tj. mreže ravnopravnih računala. Kućni korisnici i oni u manjim poslovnim subjektima (SOHO), svoja računala stavljaju u tzv. radne grupe (engl. workgroups), kako bi mogli međusobno dijeliti datoteke, pisače, skenere, poslužiteljske i druge resurse. Iako neka računala u ovom slučaju služe drugima kao (primjerice) poslužitelji datoteka, uređaji ili domaćini za mrežno dijeljene pisače, i druga računala u mreži imaju podjednake sposobnosti – te iste funkcije mogu preuzeti uz vrlo malo podešavanja i u vrlo kratkom vremenu.

Tedo Vrbanec FOI, 2010. 27 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Kućne P2P mreže mogu biti žične ili bežićne, mogu imati i usmjernik (engl. router) koji kao središnje mjesto povezuje lokalnu mrežu s Internetom, ali to nimalo ne mijenja prirodu takve mreže kao povezanost ravnopravnih računala.

2.3.3 SUVREMENE MREŽE ZA DIJELJENJE DATOTEKA

Kada se spomene termin mreže od čvora do čvora (engl. Peer-to-Peer Network) odnosno P2P mreže, prva asocijacija uobičajeno nije kućna P2P mreža međusobno ravnopravnih računala, već način razmjene datoteka između ravnopravnih računala putem Interneta. To nije čudno, jer P2P aplikacije su postale najpopularnija klasa Internet aplikacija. P2P mreže implementiraju protokole za pretraživanje i razmjenu podataka povrh internet protokola, a korisniku je dovoljno s Interneta preuzeti odgovarajućeg programskog klijenta i instalirati ga. Neke aplikacije podržavaju samo jednu P2P mrežu dok su druge u stanju istovremeno biti povezane na više P2P mreža. Područje djelovanja P2P mreža izlazi iz okvira kućnih mreža i širi se na cijeli Internet. Korisniku naklonjena sučelja aplikacija poput Kazaa ili Napster, omogućavaju, (ili su omogućavala), jednostavno sudjelovanje u P2P mreži svakom (potencijalnom) korisniku, bez obzira na njegovo znanje i stručnost. Mnoštvo je mreža istovrsnih entiteta danas u funkciji. U ovom poglavlju one će biti nabrojane i ukratko opisane, a kriterijska analiza mreža istovrsnih entiteta biti će obrađena u poglavlju 3 Kriterijska analiza P2P mreža (str. 83).

2.3.3.1 VRSTE MREŽA ISTOVRSNIH ENTITETA

Mreže istovrsnih entiteta mogu se podijeliti na centralizirane i decentralizirane. Decentralizirane mreže se mogu dalje podijeliti na strukturirane i nestrukturirane. Njihove topologije usporedno su prikazane na slici 6. Na slikama su svi čvorovi identično smješteni, ali je način njihove povezanosti drugačiji. Lijevi dio slike 6 prikazuje centralizirani sustav, središnji dio prikazuje decentralizirani nestrukturirani, a desni dio prikazuje decentralizirani strukturirani sustav.

Tedo Vrbanec FOI, 2010. 28 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 6: Usporedba topologija mreža istovrsnih entiteta

2.3.3.1.1 Centralizirane mreže istovrsnih entiteta

Centralizirane mreže istovrsnih entiteta [33] temelje se na središnjem poslužitelju ili središnjem grozdu poslužitelja „koji usmjerava promet između pojedinih registriranih korisnika“ [33]. Kod svake promjene u sustavu poslužitelj ažurira tablicu podataka o dijeljenim datotekama korisnika/članova/čvorova mreže. To posebice vrijedi kada se neki čvor spoji ili odspoji s mreže. Sam poslužitelj u svojem datotečnom sustavu nema niti jednu dijeljenu datoteku. Kada neki čvor zatraži određenu datoteku, središnji poslužitelj pretražuje tablicu te odgovara popisom dostupnih datoteka koje odgovaraju kriterijima upita. Čvor koji je uputio zahtjev, odnosno korisnik mreže, odabire (ni)jednu ili više datoteka među ponuđenima te se uspostavlja neposredna veza između dva čvora.

Slika 7: Centralizirana mreža istovrsnih entiteta Prema: Blažević , N., Biš ć an, N., Biondi ć , B., Peer ‐ 2 ‐ Peer mreže, Fakultet elektrotehnike i ra č unalstva Zagreb, 2009., , (5. lipanj 2009.)

Tedo Vrbanec FOI, 2010. 29 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 7 prikazuje centraliziranu mrežu istovrsnih entiteta. Veze između čvorova uspostavljaju se nakon što ih međusobno poveže poslužitelj. Najpoznatiji predstavnik centralizirane mreže bio je Napster (str. 60), a kao poznatije spomenimo još i , Direct Connect, Advanced Direct Connect, , Opennap i . Prednosti su centralizirane mreže istovrsnih entiteta [33]:

• kod poslužitelja postoji redovito ažurirana tablica u kojoj su upisane sve datoteke i pomoću koje se one mogu vrlo brzo locirati,

• registracija korisnika je obavezna što ima za posljedicu da se pretraživanje ostvaruje samo na podskupu trenutno prijavljenih korisnika, odnosno njima pridruženih čvorova1. Nedostaci su centralizirane mreže istovrsnih entiteta:

• poslužitelji su ulaz u sustav te se njihovim onesposobljavanjem onemogućuje rad cijele mreže [33],

• upitna je skalabilnost takvog sustava.

2.3.3.1.2 Decentralizirane mreže istovrsnih entiteta

Veliki nedostatak centraliziranih mreža istovrsnih entiteta - ranjivost na ispad cijelog sustava u slučaju ispada središnjeg (središnjih) poslužitelja, doveo je do pojave nove generacije mreža istovrsnih entiteta koje izbjegavaju strukturu središnjeg (središnjih) poslužitelja (slika 8). Neki od predstavnika su Applejuice, Ares, BitTorrent, eDonkey, FastTrack, FreeNet, GNUnet, Gnutella, Gnutella2, Kad, OneSwarm, OpenFT, , Soulseek i WASTE, a najpoznatiji su BitTorrent, eDonkey i Gnutella(2).

Slika 8: Decentralizirana mreža istovrsnih entiteta Prema: Blažević , N., Biš ć an, N., Biondi ć , B., Peer ‐ 2 ‐ Peer mreže, Fakultet elektrotehnike i ra č unalstva Zagreb, 2009., , (5. lipanj 2009.)

1 Jedan se korisnik može istovremeno prijaviti na neku mrežu istovrsnih entiteta sa više lokacija/računala.

Tedo Vrbanec FOI, 2010. 30 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Ova generacija može se podijeliti na dvije struje: strukturirane i nestrukturirane mreže istovrsnih entiteta.

2.3.3.1.2.1 Strukturirane mreže istovrsnih entiteta Temelj strukturiranih mreža istovrsnih entiteta su protokoli koji su koncipirani na način da svaki čvor može doći do željenog sadržaja ukoliko on postoji, bez obzira koliko sadržaj bio rijedak. Pri tome se najčešće koristi distribuirana tablica raspršivanja, DHT (engl. distributed hash table) koja će detaljnije biti obrađena u poglavlju 2.3.3.2 Distribuirana tablica raspršivanja, str. 32. Svaki čvor dio je definirane mrežne topologije i ima jedinstveni identifikator. Svaki je čvor odgovoran za održavanje dijela DHT-a i pridruženih podataka. Glavni predstavnici decentraliziranih strukturiranih mreža istovrsnih entiteta su Chord (str. 72) i CAN (str. 74). Osnovna svojstva decentraliziranih strukturiranih mreža istovrsnih entiteta su:

• skalabilnost: garantirano pronalaženje datoteke u cca. log(N) koraka, pri čemu je N broj čvorova u mreži,

• povećana „cijena“1 objavljivanja novih datoteka (u odnosu na nestrukturirane mreže),

• potrebno je održavanje dodatnih struktura podataka – tablica usmjeravanja2.

2.3.3.1.2.2 Nestrukturirane mreže istovrsnih entiteta Nestrukturirane su mreže obično jednostavnije građe od strukturiranih. Čvor se priključivanjem na mrežu povezuje s drugim čvorovima proizvoljno. Neki od uobičajenih načina su preplavljivanje ili kopiranje veza koje ima neki drugi čvor. U svakom slučaju, čvor tijekom vremena stvara vlastite veze. Preplavljivanje se koristi kod upita, tj. kada čvor želi naći neki sadržaj, datoteku, upit se šalje svima, a čvorovi prosljeđuju drugim čvorovima s kojima su povezani. Pri tome se može dogoditi da se čvoru ne vrati pozitivan odgovor iako tražena datoteka postoji (posebno u slučaju da je riječ o nekoj rijetkoj datoteci koju ima mali broj čvorova). Razlog zbog kojeg se to može dogoditi leži u tome što ne postoji veza između čvora i sadržaja koji traži, uz ograničenje broja skokova koje ne dozvoljava preplavljivanje upitom do svih čvorova u mreži, a podaci su pohranjeni kod čvorova koji ih kreiraju.

1 Cijena se odnosi na procesorsko vrijeme potrebno za provođenje hash funkcije nad datotekom te vrijeme ažuriranja dijela DHT-a u ingerenciji čvora. 2 Tablicama usmjeravanja se ubrzava usmjeravanje upita prema čvorovima koji imaju tražene datoteke.

Tedo Vrbanec FOI, 2010. 31 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Negativna svojstva decentraliziranih nestrukturiranih mreža istovrsnih entiteta su:

• moguće je da čvor ne dobije pozitivan odgovor na upit, iako tražena datoteka postoji negdje na mreži,

• neselektivno pretraživanje preplavljivanjem uzrokuje veliku „cijena“ pretraživanja: kod pretraživanja se generira veliki mrežni promet (i vezano uz to smanjuje se iskorištenost komunikacijskog kanala),

• slaba efikasnost pretraživanja (posljedica prvih dviju negativnih svojstava); vrlo dobri rezultati pretraživanja za česte sadržaje, loši za rijetke. Pozitivna svojstva decentraliziranih nestrukturiranih mreža istovrsnih entiteta su [33]:

• jednostavnost: jednostavna struktura mreže (mreža čvorova čini slučajni graf), jednostavni protokol1,

• robusnost: ne postoji jedna središnja točka ispada; u slučaju prestanka rada jednog čvora, drugi na njega vezani imaju dovoljnu inteligenciju da potraže i nađu veze sa drugim čvorovima,

• niska „cijena“ objavljivanja novih datoteka: datoteke i informacije o njima ostaju na čvoru na kojem su i nastale. Među najpopularnijim nestrukturiranim mrežama su Gnutella (str. 62) i FastTrack (str. 64). Slika 18 (str. 62) prikazuje model pretraživanja kod Gnutella protokola.

2.3.3.2 DISTRIBUIRANA TABLICA RASPRŠIVANJA

Efikasnost i skalabilnost bitna su svojstva distribuiranih sustava, posebno istovrsnih entiteta [34]. Pretraživanje je slaba točka kako sustava sa središnjim poslužiteljima, tako i sustava gdje se upiti provode preplavljivanjem. U prvom slučaju je narušena skalabilnost s obzirom na to da se pohrana novih datoteka povećava linearnom funkcijom: na jednom se mjestu koncentriraju svi pokazatelji na datoteke u tom sustavu. U drugom je slučaju prvobitno narušena efikasnost jer su pretraživanja preplavljivanjem vezana uz pretraživanje u širinu, čime se stvara veliki mrežni promet, a koji posljedično smanjuje i skalabilnost. R. Steinmetz skalabilnost definira kao linearnost povećanja složenosti upita u situaciji kada se broj čvorova i upita penje eksponencijalnom funkcijom [35]. Distribuirano indeksiranje u obliku distribuirane tablice raspršivanja [36] omogućuje globalni pogled na sustav u kome su datoteke raspršene kod mnoštva čvorova

1 O jednostavnosti protokola Gnutelle govori podatak da je razvijen za samo 14 dana.

Tedo Vrbanec FOI, 2010. 32 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta koji mijenjaju svoje IP adrese, brzine povezanosti i fizički smještaj. Položaj podataka tako se prati preko trenutnog stanja DHT-a, a distribuirani algoritam koji to omogućuje obavlja sljedeće zadatke:

• operacija na objektu

◦ zahtjev koji uključuje objektov globalni jedinstveni identifikator (GUID), a objekt preusmjerava zahtjev čvoru koji sadrži (duplikat) objekt(a);

• objava novog objekta

◦ čvor koji želi novi objekt učiniti dostupnim drugim čvorovima mreže istovrsnih entiteta, računa GUID za novi objekt i čini ga dostupnim drugim čvorovima;

• uklanjanje postojećeg objekta

◦ objekt može biti izbrisan ili namjerno učinjen nedostupnim;

• priključenje i isključenje čvora

◦ priključenjem, čvoru se dodjeljuju dužnosti, a napuštanjem sustava čvorove se dužnosti raspoređuju među ostale čvorove. Mreže istovrsnih entiteta podržavaju skalabilnu pohranu i dohvat parova (ključ, vrijednost) na razini prekrivajuće mreže (slika 9 [37]).

Distribuirana strukturirana prekrivajuća mreža P2P aplikacije P u V R t a ( A A A k l e u l P P P m j e u I I I = o

č s s s e G v , u v u u u e l e r č č č ( i a t e e e j k ( e V k l l l l j j j j d u e e e l j n u č : : : o č ) s ) t )

Distribuirana tablica raspršivanja (DHT)

Čvor Čvor Čvor Čvor

Slika 9: Mjesto i uloga DHT-a u P2P sustavu Prema: Lua, E.K. i dr., A Survey and Comparison of Peer-to-Peer Overlay Network Schemes, IEEE, 2004.

Tedo Vrbanec FOI, 2010. 33 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Za zadani ključ može se inicirati pohrana i dohvat podatkovnog objekta putem funkcija put(ključ, vrijednost) i value=get(ključ), a izvođenje navedenih funkcija uključuje i usmjeravajuće upite, ovisne od ključa. Poput hash tablice, DHT sadrži parove (ime, vrijednost) koji omogućuju svakom uključenom čvoru dohvaćanje vrijednosti vezane uz neko ime [33]. Sustav je distribuiran i u pogledu odgovornosti za dodjeljivanje vrijednosti pojedinom imenu, te ne predstavlja neko značajno opterećenje po sustav. Sustav je zahvaljujući DHT-u i pripadnom distribuiranom algoritmu vrlo skalabilan. DHT je ušao u sustave istovrsnih entiteta 2001. godine (CAN, Chord, Pastry, Tapestry, Tulip). „Danas je DHT dio BitTorrenta a koristi se i u drugim aplikacijama, protokolima i mrežama kao i u akademske svrhe“ [33]. Glavna su dobra obilježja korištenja DHT-a decentralizacija, skalabilnost i tolerancija na pogreške u radu sustava. „Ključni način za postizanje toga cilja jest da svaki čvor uspostavlja koordinaciju sa svega nekoliko čvorova u sustavu i to najčešće sa složenošću log(n) za n čvorova. Ključni rezultat toga je da se svaka promjena u sustavu odvija u ograničenom vremenu.“ [33] Svi DHT algoritmi temelje se na ideji konzistentnog potpisivanja objekata nekom hash funkcijom te dijele temeljno načelo da se poruka usmjerava prema čvoru koji sadrži odgovarajući identifikator u O(logbN) koraka [38]. Pri tome je N broj čvorova u sustavu, b je potencija baze 2, a O je funkcija „veliko O“ ili engl. „big O function“1. To se postiže pomoću određene metrike usmjeravanja. Temeljni element tipične mreže koja za osnovu svoga rada koristi distribuiranu tablicu raspršivanja je sustav pretraživanja. On u svome radu prvenstveno koristi tablicu usmjeravanja koja povezuje ključ i čvor. Kako bi se neka datoteka objavila, njezino se ime treba pretvoriti u numerički ključ korištenjem hash funkcije, te se taj ključ zajedno sa pripadnim meta podacima pohranjuje na računalu na kome se datoteka nalazi. Računalo koje traži određenu datoteku, traženo ime pretvara u numerički ključ koji šalje zajedno sa zahtjevom. Ovisno od načina organizacije prostora identifikatora, algoritmi pretraživanja temeljeni na DHT-u, mogu se implementirati u jednoj (Chord, Pastry, Tapestry, Kademlia) ili više dimenzija (CAN). Neki primjeri primjene DHT-a su Chord, Koorde, Pastry, Tapestry, Kademlia i CAN.

1 „U matematici, računalnim znanostima i vezanim područjima, veliko O notacija opisuje ograničeno ponašanje funkcije kada argument teži određenoj ili beskonačnoj vrijednosti, obično u terminu jednostavne funkcije. Veliko O notacija omogućava onome tko je koristi pojednostavljenje funkcije kako bi se usredotočio na njenu brzinu rasta: različite funkcije jednakog reda veličine rasta mogu se predstaviti korištenjem iste O notacije.“ [39]

Tedo Vrbanec FOI, 2010. 34 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

2.3.3.3 PREKRIVAJUĆA MREŽA

Dva su problema kod dizajna P2P mreža. Prvi je kako osigurati komunikaciju između nestalnih čvorova, odnosno čvorova koji mijenjaju svoje IP adrese, spajajući se na mrežu od bilo kuda: kuće, posla, kafića, hotela, zrakoplova, vlaka, ... fiksnim ili mobilnim pristupom, preko različitih ISP-ova. Drugi je problem kako onemogućiti da se neko tijelo ili organizacija domogne IP adrese korisnika te ga represivno gone (bez obzira na razlog i opravdanost), odnosno kako osigurati anonimnost korisnika. P2P protokoli moraju osigurati mehanizam koji omogućuje korisniku brz i pouzdan pristup resursima, bez obzira gdje se on nalazi. Distribuirani objekti u mreži moraju se automatski postavljati i pronalaziti u široko distribuiranoj mreži, s dijelovima smještenima na mnoštvu čvorova - „poslužitelja“. Pored mogućnosti dodavanja objekata te komunikacije sa svakim od njih, potrebno je postojanje mogućnosti da se određena usluga, prema potrebi, pojača dodavanjem poslužitelja. Nadalje, protokoli moraju biti takvi da programerima pripadnih aplikacija omogućavaju jednostavno sučelje, takvo da oni ne moraju misliti o različitostima i tipovima distribuiranih resursa kojima će se aplikacija baviti. Rješenje je „prekrivajuća mreža“. Svaka strukturirana mreža istovrsnih entiteta, odnosno njen protokol ima svoje mehanizme uspostave prekrivajućih mreža. Prekrivajuća mreža je mreža računala povrh druge mreže koje koriste različite protokole. Veze u prekrivajućoj mreži su logičke, virtualne. Mreža „ispod“ prekrivajuće mreže brine o fizičkoj povezanosti čvorova1; takva se mreža naziva komunikacijska podmreža ili kraće podmreža. U slučaju mreža istovrsnih entiteta, prekrivajuća mreža je zapravo mreža istovrsnih entiteta, a podmreža je obično Internet ili neki njegov dio. Koncepcija prekrivajuće mreže prikazana je na slici 10, str. 36. U donjem dijelu slike prikazani su čvorovi koji su putem neke stvarne, fizički prisutne mreže, posredovanjem pristupnika, (engl. gateway), spojeni na Internet, i to (redom s lijeva na desno) lokalnom mrežom, zatim bežičnim putem i na kraju preko vatrozida. To naravno nisu jedini načini fizičke povezanosti na Internet, već samo naznačuju da se računala/čvorovi raznim načinima mogu fizički priključiti na Internet. Ta računala se zatim mogu uključiti u neku prekrivajuću mrežu, u ovom slučaju u mrežu istovrsnih entiteta, pri čemu se, (tijekom postupka uključenja odnosno prijave), čvoru pridružuje jedinstveni identifikator čvora, koji nema nikakve veze sa IP adresom. Sve kasnije komunikacije u toj virtualnoj mreži ostvaruju se pozivanjem na taj jedinstveni identifikator.

1 Put u podmreži može se ostvarivati i kroz više fizičkih veza.

Tedo Vrbanec FOI, 2010. 35 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Povezivanje/usmjeravanje se umjesto na mrežnom sloju ISO/OSI modela, ostvaruje na aplikacijskom sloju. Već je zbog toga mehanizam povezivanja i usmjeravanja drugačiji.

Slika 10: Prekrivajuć a mreža Prema: Feigl, M., Usporedba simulatora mreže istovrsnih entiteta (diplomski rad), Fakultet elektrotehnike i rač unarstva, 2008.

Mehanizam povezivanja i usmjeravanja omogućava:

• da čvor može pristupiti nekom objektu usmjeravanjem zahtjeva kroz niz čvorova,

• dupliciranje objekata kako bi im se osigurala veća dostupnost. Kod prekrivajuće mreže sustava istovrsnih entiteta postoji virtualna veza svaka dva člana koji znaju jedan za drugog. Ipak, ovisno od toga na koji je način to povezivanje ostvareno, možemo dodatno klasificirati mreže istovrsnih entiteta na strukturirane i nestrukturirane (što je objašnjeno u poglavljima 2.3.3.1.2.1 Strukturirane mreže istovrsnih entiteta, str. 31 i 2.3.3.1.2.2 Nestrukturirane mreže istovrsnih entiteta, str. 31). Prekrivajuće mreže obično su sastavni dio P2P protokola, ali ima i primjera njihova samostalnog razvoja poput pSearch1, Semantic Small World (SSW) [47], Tulip Overlay [48], Edutella [49][50] i dr. Sustavi istovrsnih entiteta za pretraživanje koriste ili središnje indeksiranje ili preplavljivanje ili heuristiku ili neku varijantu ili kombinaciju navedenih postupaka. Kako god bilo, sustavi istovrsnih entiteta se susreću ili s problemom skalabilnosti ili s problemom efikasnosti pretraživanja. Kako bi se unaprijedila efikasnost pretraživanja

1 U literaturi se mogu naći sustavi koji su uveli metodu pretraživanja po ključnim riječima za DHT, poput [40][41][42][43], pri čemu se susreću sa problemima neravnomjernog opterećenja sustava. Psearch nastoji doskočiti tom problemu, koristeći metodu koja nalikuje na višedimenzionalni CAN [44][45]. Prema [46] pSearch koristi semantiku koju izvlači iz dokumenta postupkom nazvanim „latentno semantičko indeksiranje“ stvarajući tzv. semantički vektor.

Tedo Vrbanec FOI, 2010. 36 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta sustava koji koriste selektivno prosljeđivanje upita, noviji sustavi istovrsnih entiteta koriste DHT. Ipak, da bi se pouzdano pronašao traženi sadržaj, mora se znati (i ispravno unijeti) njegovo točno ime. To je stoga jer se, kao temelj distribucije objekata kroz sustav, za stvaranje jedinstvenog identifikatora nekog objekta koristi hash funkcija. Ako dakle, točni naziv sadržaja nije poznat, traženi se objekt ne može locirati u sustavu.

2.3.3.4 TAKSONOMIJA MREŽA ISTOVRSNIH ENTITETA

Kategorizacija sustava istovrsnih entiteta može se izvršiti na različite načine. Prema jednoj mogućoj kategorizaciji (Milojičić i dr. [3]), identificiramo četiri temeljne kategorije P2P sustava: raspodijeljeno računanje, dijeljenje datoteka, suradnja i platforme (slika 11). Isti izvor razlučuje tri klase P2P aplikacija: (a) paralelizam, (b) upravljanje sadržajem i datotekama te () suradnja. One pak se dalje dijele na kategorije (slika 12).

Slika 11: Temeljne kategorije P2P sustava Izvor: Milojič i ć , D. i dr., Peer-to-Peer Computing, HP Laboratories Palo Alto, 2001.

Slika 12: Klase P2P aplikacija Izvor: Milojič i ć , D. i dr., Peer-to-Peer Computing, HP Laboratories Palo Alto, 2001.

Drugi mogući pogled na kategorizaciju vezan je uz vrstu resursa koji su glavni objekt „interesa“ pojedine primjene [51]:

Tedo Vrbanec FOI, 2010. 37 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

1. Informacija kao resurs. 2. Razmjena datoteka kao resurs. 3. Pohrana podataka kao resurs. 4. Procesor kao resurs. P2P sustavi realiziraju se P2P aplikacijama koje se, analizirajući konkretne primjere primjena, mogu se ne-hijerarhijski kategorizirati u devetnaest kategorija, a koje se primjerima potkrjepljuju u prilogu III Kategorije primjena P2P mreža s primjerima: 1. čvorovi – agenti, 2. suradnja, 3. razvojne okoline, 4. uređaji kao čvorovi, 5. distribuirano računalstvo, 6. distribuirani objekti, 7. distribuirane tražilice, 8. dijeljenje datoteka, 9. igre, 10. infrastruktura, 11. Internetski operacijski sustavi, 12. distribucija licenciranih sadržaja, 13. platforme za dopisivanje, 14. metapodaci, 15. upravljanje ugledom i imovinom, 16. sigurnost, 17. poslužitelji i servisi kao ravnopravni istovrsni čvorovi, 18. superdistribucija (višekanalna razmjena sadržaja) i 19. stvaranje web sadržaja. Navedena kategorizacija ne mora biti jedina moguća i svakako je zahvalan predmet daljnjeg istraživanja. Na primjeru sto i jedne P2P aplikacije, zaključujem da dvije trećine, 66% P2P aplikacija, pripada samo jednoj kategoriji, 28% objedinjuje svojstva dviju kategorija, 6% tri kategorije, a niti jedna ne objedinjuje svojstva više od tri kategorija (slika 13, str. 39). One koje pripadaju u više kategorija obično nemaju u svima njima jednako bogate mogućnosti. Detaljni popis P2P aplikacija i kategorija kojima pripada prikazan je u odgovarajućoj matrici u tablici 2 na str. 39.

Tedo Vrbanec FOI, 2010. 38 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

70% 66,34%

60%

50% a j i

c 40% a k i l p

a 27,72%

j 30% o r B

20%

10% 5,94%

0% 1 kategorija 2 kategorije 3 kategorije

Slika 13: Uč estalost više-kategorijske pripadnosti P2P aplikacija

Tablica 2: Matrica P2P aplikacija i pripadnih kategorija

P2P aplikacija Σ a b c d e f g h i j k l m n o p q r s

Anthil 2 ∗ ∗

Infobot 1 ∗

IIC 1 ∗

Prompt2U 1 ∗

Yenta 1 ∗

1stWorks 2 ∗ ∗

HIVE 2 ∗ ∗

Chinook 1 ∗

Smith-Waterman on GreenTea 1 ∗

Collanos Workplace 1 ∗

Colloquia 1 ∗

eZmeeting 1 ∗

Groove 3 ∗ ∗ ∗

ICQ 2 ∗ ∗

SpinXpress 1 ∗

WebDAV 1 ∗

BazeOne Internet Server 3 ∗ ∗ ∗

Biz2Peer 1 ∗

Cosm 2 ∗ ∗

Tedo Vrbanec FOI, 2010. 39 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 2: Matrica P2P aplikacija i pripadnih kategorija

P2P aplikacija Σ a b c d e f g h i j k l m n o p q r s

TeraPlatform 1 ∗

TeraDrive 1 ∗

WorldOS 1 ∗

Bluetooth 1 ∗

Brazil 1 ∗

Magi Suite 2 ∗ ∗

Jini 1 ∗

SmartPeer 1 ∗

ChessBrain 2 ∗ ∗

GridServer 1 ∗

FabricServer 1 ∗

Distributed.net 1 ∗

Globus project 1 ∗

Pooling 1 ∗

Mangomind 1 ∗

Parabon Computation Grid 1 ∗

REBOL 3 ∗ ∗ ∗

SETI@Home 2 ∗ ∗

Ubero 1 ∗

ZetaGrid 1 ∗

XOBJEX 2 ∗ ∗

Filetopia 3 ∗ ∗ ∗

Grub 1 ∗

KaZaA 2 ∗ ∗

Dublin Core 2 ∗ ∗

NeuroGrid 1 ∗

Nextpage 1 ∗

PLATFORMedia 2 ∗ ∗

IntelleCat 2 ∗ ∗

BadBlue 2 ∗ ∗

Eudora 1 ∗

Gnutella klijenti 2 ∗ ∗

iMesh 2 ∗ ∗

iNoize 1 ∗

Napster 3 ∗ ∗ ∗

NextPage 2 ∗ ∗

OpenNap 1 ∗

WebDAV 1 ∗

Tedo Vrbanec FOI, 2010. 40 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 2: Matrica P2P aplikacija i pripadnih kategorija

P2P aplikacija Σ a b c d e f g h i j k l m n o p q r s

FX Visuals 1 ∗

Second Life 1 ∗

Xfire 1 ∗

FreeFlow 2 ∗ ∗

Alliance Consulting 1 ∗

Freenet 2 ∗ ∗

Glueware 2 ∗ ∗

Jabber 2 ∗ ∗

Oculus 1 ∗

Free Haven Project 3 ∗ ∗ ∗

.NET 2 ∗ ∗

2Peer 2 ∗ ∗

Chord 1 ∗

RightsPublish 1 ∗

Tuneprint 2 ∗ ∗

BabbleNet 1 ∗

Pidgin 1 ∗

Jabberzilla 1 ∗

Reptile 2 ∗ ∗

Trillian 1 ∗

Bitzi 1 ∗

Radio UserLand 2 ∗ ∗

Resource Description Framework 1 ∗

RSS 1 ∗

OpenPrivacy 2 ∗ ∗

Yenta 1 ∗

Berkeley Distribution 1 ∗

Publius 2 ∗ ∗

JXTA 1 ∗

Bloglines 1 ∗

Google Reader 1 ∗

Blogs.com 1 ∗

SOAP 1 ∗

WSDL 1 ∗

XML-RPC 1 ∗

AllCast 1 ∗

Miro 1 ∗

Amaya 1 ∗

Tedo Vrbanec FOI, 2010. 41 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 2: Matrica P2P aplikacija i pripadnih kategorija

P2P aplikacija Σ a b c d e f g h i j k l m n o p q r s

Blogger 1 ∗

Everything 1 ∗

Manila 1 ∗

MovableType 1 ∗

MozBlog 1 ∗

Wiki Wiki Web 1 ∗ Legenda (a) agenti (k) Internetski operacijski sustavi (b) suradnja (l) distribucija licenciranih sadržaja (c) razvojne okoline (m) platforme za dopisivanje (d) uređaji kao čvorovi (n) metapodaci (e) raspodijeljeno računanje (o) upravljanje ugledom i imovinom (f) distribuirani objekti (p) sigurnost (g) distribuirane tražilice (q) poslužitelji i servisi (h) dijeljenje datoteka (r) višekanalna razmjena sadržaja (i) igre (s) stvaranje web sadržaja (j) infrastruktura

S obzirom na velik broj kategorija P2P aplikacija, postavlja se pitanje da li je podjela kategorija na tri klase najbolje moguće (slika 12 na str. 37). Za odgovor na ovo pitanje potrebno je izvršiti istraživanje izvan okvira ovog rada. Postoji mnoštvo vrlo zanimljivih projekata koji se temelje na uporabi sustava istovrsnih entiteta. Sljedećih nekoliko primjera koji su odabrani po kriteriju neobičnosti, ima za isključivi cilj ilustrirati gotovo nevjerojatnu raznolikost primjene sustava istovrsnih entiteta:

• kolaborativni uređivač ontologije1 temeljen na mreži istovrsnih entiteta,

• korištenje razmjene datoteka unutar društvenih mreža,

• projekt „Prijatelj prijatelja“ (engl. The Friend of a Friend (FOAF) project)2,

• JXTA tehnologija (str. 77),

• korištenje P2P sustava za prijenos elektroničke pošte - sustav temeljen na sasvim drugačijim osnovama od onog koji se danas koristi.

1 „U računalnim znanostima, ontologija je model znanja koje opisuje područje te se koristi za zaključivanje o entitetima u području i relacijama između njih.“ [52] 2 Cilj projekta „Prijatelj prijatelja“ je stvaranje mreže strojno čitljivih stranica koje opisuju ljude, veze između njih i ono što su stvorili i činiti. FOAF definira otvorenu, decentraliziranu tehnologiju za povezivanje društvenih web stranica, i ljude koje te stranice opisuju. [53] Da projekt ima potencijale svjedoči i Googleov Social Graph API (http://code.google.com/intl/hr/apis/socialgraph/) koji indeksira sve javne FOAF podatke na webu.

Tedo Vrbanec FOI, 2010. 42 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

2.3.3.5 PRIMJENE MREŽA ISTOVRSNIH ENTITETA

Neke primjene mreža istovrsnih entiteta su u tehnološkom i stručnom pogledu vrlo značajne, a druge su eksperimentalno, znanstveno-istraživački motivirane. S obzirom na prirodu ovog rada i na predvodničku ulogu znanstvenih istraživanja u ovoj domeni, posebnom je točkom izdvojena znanstvena primjena mreža istovrsnih entiteta, a s obzirom na to da znanost treba služiti čovjeku i njegovu napretku, drugom je točkom izdvojena njihova poslovna primjena.

2.3.3.5.1 Znanstvena primjena mreža istovrsnih entiteta

Znanstvenici su vrlo rano nakon pojave mreža istovrsnih entiteta pronalazili načine njihove uporabe u znanstvene svrhe. Puno je eksperimentalnih znanstvenih projekata, a neki su doživjeli prelazak iz teorijske i eksperimentalne u produkcijsku fazu. Njihov broj i raznolikost potvrđuju da je područje mreža istovrsnih entiteta vrlo dinamično i perspektivno sa znanstvenog gledišta. Mogućnosti primjena je toliko mnogo da je praktično nemoguće popisati sve znanstvene projekte koji koriste mreže istovrsnih entiteta. Ipak, moguće je njihovom analizom utvrditi da se gotovo svi koriste gridom, tj. mrežnim računalstvom. Mrežno računanje (engl. Grid Computing), [54] omogućuje zajednički rad mnoštva pojedinačnih računala stvarajući umreženi sustav (klaster, grozd), s računalnom snagom koja može uvelike nadmašiti računalnu snagu superračunala, a naglasak je na nižoj cijeni koštanja i manjoj osjetljivosti na ispad cjelokupnog sustava. Istraživačke zadatke koji zahtijevaju ogroman broj kalkulacija takav sustav može dijeliti u manje dijelove, koji se obrađuju simultano, skraćujući utrošak vremena potrebnog za njihovu provedbu i za nekoliko redova veličine. U Europi je posljednjih godina puno sredstava i energije uloženo u e-znanost. Programi pokrenuti i ostvareni na nacionalnoj i europskoj razini dali su izvrsne rezultate. Kao popratna pojava, grid tehnologija je prepoznata kao osnovna komponenta za ostvarenje i realizacije e-infrastrukture. Mnoge zemlje imaju ili su pokrenule inicijative uspostave nacionalnih grid infrastruktura. U Hrvatskoj je razvoj grid infrastrukture započeo 2004. godine na inicijativu Instituta Ruđer Bošković, uz suradnju većeg broja ustanova iz akademske zajednice i financijskom podrškom Ministarstva znanosti, obrazovanja i športa [55]. Provođenjem projekata sa zajedničkim prefiksom CRO-GRID, realizirana je grid infrastruktura CRO NGI [56][57], prikazana na slici 14, str. 44.

Tedo Vrbanec FOI, 2010. 43 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 14: CRO NGI infrastruktura (2010.) Izvor: -, CRO NGI arhitektura, Croatian National Grid Infrastructure, SRCE, , (7. travanj 2010.)

Nacionalne su grid inicijative u Europi, njih 38, uvidjele potrebu međusobnog povezivanja. Zajedno su pokrenule projekt EGI (engl. European Grid Infrastructure) te potaknuli države članice Europske Unije na donošenje strateških odluka potrebnih za uspostavu i podršku održive grid infrastrukture [58] i inicirali njihovu provedbu, što je vidljivo iz slike 15 [58].

Slika 15: Vremenski plan razvoja EGI sustava Izvor: -, EGI: What is EGI?, European Grid Infrastructure, 30 travanj 2008., , (7. travanj 2010.)

Tedo Vrbanec FOI, 2010. 44 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Mnoge su i raznovrsne primjene grid tehnologije. Ilustracije radi, nabrojimo neke: projekt istraživanja ljudskog genoma1, projekt istraživanja raka stanica, projekti traženja lijekova za pojedine bolesti i borbe protiv biološkog terorizma (Anthrax), projekt HMME (koji koristi skrivene Markovljeve lance za traženje uzoraka u DNA nizovima), projekt Webload (ispitivanje i poboljšanje skalabilnosti web poslužitelja), projekt predviđanja klimatskih promjena i mnogi, mnogi drugi. Danas je velika većina najsnažnijih računalnih sustava realizirana kao grozdovi računala (njih je čak 81% od 500 najsnažnijih superračunala [60]), a često ih se koristi i izvan istraživačkih centara. Grozd računala može biti važan snažan računalni resurs i za radne grupe, odjele ili cijele tvrtke. Povoljni omjer troškova i učinkovitosti grozdova računala u odnosu na velika ili superračunala, rezultiralo je time da se grozdovi računala danas koriste u velikom broju raznovrsnih poduhvata. Danas se pri realizaciji grozdova računala mogu koristiti, pored zatvorenih komercijalnih programskih sustava [61], i programski sustavi otvorenog kôda, kako profesionalno i komercijalno podržani [62][59] tako i oni besplatni [63], što omogućava da se grozdovi računala mogu koristiti gotovo bilo gdje gdje je potrebna jaka računalna snaga, a s niskim ukupnim troškovima vlasništva. Dva su načina fizičkog stvaranja grozda računala:

• slaganjem klasičnih kućišta bez periferija,

• ugrađivanjem posebnih kućišta u posebne police (engl. rack = stalak, polica, okvir). Četiri su načina programskog povezivanja grozdova računala:

• programskom podrškom načinjenom od strane entuzijasta,

• besplatnom programskom podrškom otvorenog kôda,

• profesionalnom programskom podrškom otvorenog kôda,

• profesionalnom programskom podrškom zatvorenog kôda. Računala u grozdu su mrežno povezana kablovima (UTP, STP ili optički kablovi) i usmjerivačima.

1 „Geni su osnovne materijalne jedinice nasljeđivanja, a njihova je osnovna zadaća određivanje i koordiniranje strukture desetaka tisuća proteina koji kontroliraju sve ostale funkcije u organizmu. Genom je skup svih gena u jednoj stanici.“ [59] Projekt istraživanja ljudskog genoma odnosno kompletiranja mape ljudskog genoma, imao je za cilj očitati ljudski genetski kôd, zapisati tzv. „knjigu života“, koja je sada uz velike praznine ispisana, ali još potpuno nerazumljiva. Razumijevajući ljudski genom, znanstvenicima će biti moguće identificirati one gene koji su značajni za razvoj različitih bolesti, pa će biti lakše pronaći lijekove i načine liječenja. Projekt je inicirala američka vlada, a pokrenut je početkom lipnja 1989. godine od strane američkog Nacionalnog instituta za zdravlje, s predračunom od tri milijarde dolara. Završen je u lipnju 2000. godine, pet godina prije roka, uz znatne uštede. Ubrzanju i uštedama su najviše pridonijela snažna računala, preciznije: korištenje računalnih klastera u dobivanju računalne snage reda veličine super- računala.

Tedo Vrbanec FOI, 2010. 45 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Grozdovi računala se najčešće koriste u sljedećim domenama: dizajn potpomognut računalom, strojarstvo, istraživanje, financijske usluge, istraživanje i eksploatacija nafte i plina te u prirodnim znanostima [60][64]. U akademskim krugovima često se koristi legalna primjena mreža istovrsnih entiteta. Primjeri su Lionshare [65][66], Bumerang [67] i Vucrn [68][69][70].

2.3.3.5.2 Primjeri poslovne primjene mreža istovrsnih entiteta

Prednosti korištenja P2P mreža za poslovnu uporabu [71] leži u jednostavnosti implementacije, uključivanja u mrežu te njenog korištenja [13]. U prilogu III Kategorije primjena P2P mreža s primjerima, pojedini primjeri uporabe mreža istovrsnih entiteta imali su i komercijalnu dimenziju. Ipak, ona u navedenim primjerima nije bila izražena. Prema [72] „na Internetu niču nove aplikacije koje primjenjuju kontrolu mrežnog prometa na aplikacijskoj razini. Stoga se inteligencija pomiče sa okosnica mreža prema njihovim rubovima.“1 Popularni primjeri takvih usluga na rubnim dijelovima mreže su postojeće mreže istovrsnih entiteta za dijeljenje datoteka, (poput eDonkey, BitTorrenta) ili Skypea, klijenta za glasovnu komunikaciju putem Interneta, odnosno IP protokola (VoIP). Slijede primjeri brojnih uspješnih projekata komercijalne i potpuno legalne uporabe mreža istovrsnih entiteta.

SKYPE

Skype je vlasnička aplikacija koja omogućava VoIP uslugu, preciznije: Skype je [73] najveći pružatelj VoIP usluga na svijetu. Korisnicima je posebno atraktivan jer omogućuje besplatne pozive2 između Skype korisnika gdje god se oni nalazili. Temelji se na tehnologiji mreža istovrsnih entiteta. Omogućava brz pristup velikom broju korisnika. Glasovne usluge pruža putem različitih tipova mreža, i žičnih i bežičnih, sa prihvatljivom kvalitetom glasovne komunikacije, kao i distribuirani i troškovno učinkovit rad VoIP usluge. Dobru kvalitetu usluge glasovne komunikacije [72] Skype postiže korištenjem odgovarajućih govornih kodeka (engl. codec = coder + decoder), kao što su iSAC i iLBC, kao i prilagodbom korištenog kapaciteta komunikacijskog kanala ovisno od trenutnih

1 Ovdje je kontekst korištenja bežičnih računalnih mreža koje su gotovo redovito posredstvom žičane infrastrukture u konačnici dio Interneta. Korisnicima koji se njima koriste, moguća je uspostava telefonskih poziva sa korisnikom koji je na (analognoj) telefonskoj (parici) vezi, tehnologijom VoIP telefonije, što je znatno jeftinije od čiste bežične veze na Internet ili posredovanjem mobilnih telefonskih operatera. 2 Pozivi posredovani Skypeom mogu biti sljedećih tipova: PC => PSTN i PC => PC. Za prvi tip postoji određena naknada koja je cjenovno znatno povoljnija od PSTN <=> PSTN tarifa, a potonji je besplatan.

Tedo Vrbanec FOI, 2010. 46 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta uvjeta u mreži koji se opisuju klasičnim parametrima kvalitete usluge s kraja na kraj: gubitak paketa ili treperenje (engl. Jitter). Skype je uspješno ujedinio P2P i VoIP, tj. povezao je međusobno ravnopravne, istovrsne čvorove i glasovnu komunikaciju putem Interneta. Tim je povezivanjem stvorio novi standard i model korištenja Interneta. Unio je mnoge funkcionalnosti kojima odskače od tradicionalne telefonije [73], poput ugodnog sučelja, izvrsne kvalitete zvuka te visoku sigurnost realiziranu kroz enkripciju razgovora kroz sve dijelove komunikacijskog kanala između sudionika komunikacije. Skype ima i ozbiljna negativna obilježja [18]. Za komunikaciju koristi port 80 koji se koristi i za web promet. Stoga ga je teže zatvoriti, iako postoje i takva programska rješenja. Mnoge organizacije, od sveučilišta do međunarodnih korporacija i nacionalnih vlada (npr. Francuska), zabranjuju uporabu ili preporučuju izbjegavanje Skypea. Tome je pomogla i negativna preporuka Info-Tech Research Group [74]. Što Skype čini potencijalnim rizikom? Iste one stvari koje ga čine toliko popularnim: i laik ga može skinuti s Interneta i instalirati, bez kontrole administratora, izuzetno ga je lako podesiti, za komunikaciju mu nisu prepreka vatrostijene, a gotovo da i ne ostavlja tragove svoje prisutnosti, osim znatno povećanog prometa. Aplikacija sjajno radi, ali rupa stvorena telefonskim razgovorima može biti iskorištena za krađu podataka ili podvaljivanje virusa. Istraživanje provedeno za članove Info-Tech Research Group [74] rezultiralo je sa pet zaključaka odnosno razloga zašto je u poslovnom okruženju potrebno zabraniti uporabu najpopularnijeg softvera za VoIP telefoniju: 1. Skype nije u skladu sa standardima, jer dozvoljava komunikaciju kroz organizacijske vatrostijene, stvarajući i otkrivajući ranjivosti organizacije. 2. Enkripcija korištena u Skypeu nije otvorenog kôda, te je stoga otvorena za napade onih koji su sustav enkripcije stvarali ili upoznali. Pored toga, nije jasno kako se upravlja ključevima. 3. Organizacije koje koriste Skype riskiraju stvaranje komunikacijske barijere s državama, organizacijama i institucijama koje su Skype već zabranile. 4. Skype se ne može ili se može vrlo teško detektirati, pratiti ili procjenjivati, što stvara rizik za organizacije koje su to dužne činiti. 5. Otvoreno je pitanje da li se VoIP telefonski razgovori po zakonskim propisima moraju bilježiti.

Tedo Vrbanec FOI, 2010. 47 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

DISTRIBUCIJA MULTIMEDIJSKIH SADRŽAJA

Ourmedia.org [75] besplatno i legalno nudi preuzimanje filmova putem BitTorrent protokola. Portal za dijeljenje glazbe pod nazivom Jamendo [76] nudi besplatno, legalno i neograničeno preuzimanje glazbe od nekoliko tisuća izvođača putem BitTorrent protokola. Knjige u zvučnom zapisu sa LibriVox.org [77] za koje nema autorskih prava dostupne su na legaltorrents.com. Na istom mjestu su dostupni i filmovi, glazba, televizijske emisije, slike, animacije, knjige, igre i drugi sadržaji. Na Revision3 Internet televiziji [78] korisnici mogu pregledavati 16 različitih emisija, neposredno sa web stranica ali i skinuti ih preko BitTorrent protokola. Kanadska nacionalna televizijska kuća CBC [79] preko BitTorrent protokola objavljuje popularni TV show Canada's Next Great Prime Minister posredstvom .org trackera. [80] je mjesto prikupljanja multimedijskih sadržaja koje korisnicima predstavlja u obliku tzv. kanala, asocirajući na klasičnu televiziju. Koristi BitTorrent protokol za distribuciju video sadržaja visoke rezolucije. Joost [81] je web sjedište koje obiluje video sadržajima svih vrsta: od glazbenih spotova, preko televizijskih emisija, sve do filmova.

MREŽNE IGRE

Među poslovne modele uporabe mreža istovrsnih entiteta svakako treba ubrojiti i mrežno igranje gdje su igrači umreženi u P2P sustav1. Naime, proizvođači igara opcijom mrežnog igranja snažno privlače mnoštvo igrača na kupnju licenci odnosno originalnih igara, jer samo sa originalnim, ispravnim kodom može se uključiti u mrežni način igranja s drugim igračima. Blizzard, jedan od vodećih proizvođača igara (npr. Diablo, Starcraft, Warcraft i dr.), primjenjuje metodu programske nadogradnje putem programskog klijenta koji koristi HTTP za manje nadogradnje i BitTorrent protokol za veće nadogradnje. Višemilijunska populacija mrežnih igrača u samoj jednoj igri poput World of Warcraft, sasvim bi onemogućila normalan rad Blizzardovih poslužitelja prilikom izdavanja većih nadogradnji da se ostalo na klasičnoj uporabi klijent-poslužiteljske tehnologije. Ista je situacija kod proizvođača igrače konzole Konami. Njegov Playstation 3 ima opciju nadogradnje između BitTorrent i HTTP protokola, pri čemu je prvi način znatno brži.

1 Pored P2P umrežavanja igrača postoji i onaj klasičan, putem poslužitelja.

Tedo Vrbanec FOI, 2010. 48 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

ADOBE

Adobe Flash Player od verzije 10 uključuje Real Time Media Flow Protocol (RTMFP) koji omogućuje P2P komunikaciju poput BitTorrent protokola. Tehnologija omogućuje da krajnji korisnici, kada su međusobno povezani, mogu međusobno preuzimati zvuk i video sa mikrofona i kamere.

LINUX

Razne „verzije Linuxa“1 koje se nazivaju distribucije dostupne su u cijelosti (većinom) ili kao ažuriranja (rjeđe) preko BitTorrent protokola iako gotovo sve distribucije nude i klasično preuzimanje HTTP protokolom. , Debian, Fedora neke su najčešće distribucije [82], a ima ih vrlo mnogo: početkom 2010. godine čak 309 [83]. Gotovo sve nude preuzimanja svojih distribucija i putem nekog P2P protokola, najčešće BitTorrent. - Mnoge su druge poslovne primjene mreža istovrsnih entiteta. Nabrojeni primjeni imali za isključiv (informativan) cilj pokazati šarolikost njihove moguće primjene u komercijalne svrhe.

2.4 P2P PROTOKOLI I APLIKACIJE

P2P aplikacije temelj su P2P mreža. P2P mreže koriste protokole po kojima najčešće dobivaju i ime. P2P aplikacije koriste jedan ili više P2P protokola za svoj rad te su kao klijenti povezani na jednu ili više P2P mreža. Protokoli u funkciju ulaze preko klijenata – aplikacija. Ta je situacija prikazana ER dijagramom na slici 16.

Slika 16: Odnos aplikacija, protokola i mreža u P2P sustavima (ER dijagram)

P2P aplikacije moraju koristiti jedan ili više P2P protokola koji su im potrebni za stvaranje P2P mreže. Neuspješni protokoli ili aplikacije mogu dovesti do situacije da se P2P mreža nikad ne stvori ili da tijekom vremena zamre. Protokoli su obično namijenjeni stvaranju jedne P2P mreže, ali do njenog stvaranja ne mora nikada doći. S druge strane,

1 Linux je naziv za jezgru operacijskog sustava oko koje različiti razvijatelji stvaraju distribucije na način da jezgri dodaju (po njima) potrebnu programsku podršku (pakete).

Tedo Vrbanec FOI, 2010. 49 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta uspješni protokoli često se koriste u više P2P mreža. P2P mreža može inicijalno koristiti samo jedan P2P protokol, ali širenjem korisničke baze i razvojem, uspješne P2P mreže često implementiraju više verzija istog protokola ili čak i više različitih protokola. Uspješne P2P protokole koriste mnoge aplikacije, dok neuspješni ili ne zažive na aplikacijskoj razini ili razvoj aplikacija koje ih koriste vremenom zamre ili P2P aplikacije izbace podršku za takve neuspješne P2P protokole.

2.4.1 STANJE I ODNOSI VRSTA INTERNET PROMETA

Eksperimentalni pokazatelji [84][85][86] čvrsto potvrđuju da se sveukupni Internet promet današnjice većim dijelom sastoji od prometa što ga generiraju P2P mreže. Iako podaci o količini pojedinih klasa prometa u svijetu regionalno značajno variraju, mogu se izvući jasni trendovi. 2006. godine P2P udio prometa na Internetu je iznosio od 30% po danu do 70% po noći. Pri tome su BitTorrent i eDonkey činili preko 95% P2P prometa [84]. O rastu udjela P2P protokola zorno govori slika 17 [87].

Slika 17: Relativni odnos glavnih vrsta Internet prometa 1993.-2006. g. Izvor: -, The P4P Working Group | Networks, Pando Networks Inc., 2009., , (24. ožujak 2010.)

2007. godine je udio P2P prometa prosječno u svijetu iznosio od 49% do 83% cjelokupnog Internet prometa1, s tim da je po noći taj postotak povremeno bio i do 95%

1 Pri tome je oko 20% tog prometa bilo kriptirano.

Tedo Vrbanec FOI, 2010. 50 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[85]. 2008. godine je taj udio smanjen na 43% do 70% (tablica 3 [86]), iako je u apsolutnim iznosima povećan. Naime, web promet je povećao svoj udio zbog: 1. širenja servisa on-line pohrane i dijeljenja datoteka poput Megauploads ili Rapid Sharea, 2. širenja društvenih mreža poput Facebooka čije je sučelje upravo web sučelje, 3. naglog povećanja broja web sjedišta, tj. bogatstva web sadržaja. Usporedni prikaz nekih regija1 vidljivi su u tablici 4 [86] (str. 52).

Tablica 3: Proporcije Internet prometa prema protokolima i regijama 2008. godine

Klasa Južna Sjeverna Istočna Sjeverna Sjeverna SZ2 Njemačka Bliski Istok protokola Afrika Amerika Europa Afrika Europa Europa P2P 65,77% 65,21% 69,95% 42,51% 52,79% 55,12% 44,77% 54,46% Web 20,93% 18,17% 16,23% 32,65% 25,78% 25,11% 34,49% 23,29% Streaming 5,83% 7,81% 7,34% 8,72% 7,17% 9,55% 4,64% 10,14% VoIP 1,21% 0,84% 0,03% 1,12% 0,86% 0,67% 0,79% 1,67% IM 0,04% 0,06% 0,00% 0,02% 0,16% 0,03% 0,50% 0,08% Tuneliranje 0,16% 0,10% – – – 0,09% 2,74% – Standard 1,31% 0,49% – 0,89% 4,89% 0,52% 1,83% 1,23% Igre – 0,04% – – 0,52% 0,05% 0,15% – Nepoznato 4,76% 7,29% 6,45% 14,09% 7,84% 8,86% 10,09% 9,13% Legenda: Protokol Definicija klase Primjeri P2P P2P file sharing Ares, BitTorrent, eDonkey, Gnutella Web web stranice, uključujući on-line pohranu i sva Web mjesta, RapidShare, Megaupload dijeljenje datoteka (engl. File Hosting) Streaming audio i video streaming Flash, QuickTime, Real Media, RTSP VoIP Voice over IP – Internet telefonija IAX, H.323, MGCP, SIP, Skinny, Skype IM trenutne poruke IRC, Gadu-Gadu, XMPP (Jabber, Google Talk), MSN, Oscar, Paltalk, Yahoo Tuneliranje protokoli kriptiranog i nekriptiranog tuneliranja GRE, IPsec, OpenVPN, SSL, Standard uobičajeni Internet protokoli (bez Weba) BGP, DNS, FTP, ICMP, IGMP, IMAP, NTP, POP, SMTP, , Usenet Igre mrežne igre i igre više igrača Battlefield, Half-Life 2, Lively, Quake, Second Life, Steam, World of Warcraft, Xbox Nepoznato neklasificirani promet

1 Nedostaju podaci iz nekih regija, pa je usporedba rađena samo na onim regijama gdje je to moguće. 2 SZ = Sjeverozapadna.

Tedo Vrbanec FOI, 2010. 51 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 4: Usporedba udjela klasa protokola nekih regija za 2007. i 2008./2009. godinu

Klasa Istočna Europa Njemačka Bliski Istok SZ Europa protokola 2008./2009. 2007. 2008./2009. 2007. 2008./2009. 2007. 2008./2009. 2007. P2P 69,95% 83,46% 52,79% 69,25% 44,77% 48,97% 54,46% 63,94% Web 16,23% - 25,78% 14,34% 34,49% 34,71% 23,29% - Streaming 7,34% - 7,17% 7,75% 4,64% 0,07% 10,14% - VoIP 0,029% - 0,86% 0,92% 0,79% 0,57% 1,67% - IM 0,002% - 0,16% 0,32% 0,50% 0,24% 0,08% -

2.4.2 PREGLED I USPOREDBA P2P APLIKACIJA

Tablica 5 (str. 53) daje okvirni pregled P2P aplikacija čija je temeljna zadaća dijeljenje datoteka [88], kao najbrojnija skupina P2P aplikacija. Okvirni stoga jer nove aplikacije stalno nadolaze (npr. MP3Rocket nije u tablici), stare mijenjaju ime (Azureus u Vuze), ili ih više nitko ne koristi (WinMX) ili je prestala podrška od strane razvijatelja (Kazaa). Tablica 6 (str. 58) dopunjuje tablicu 5 prikazujući vezu P2P protokola i o njima ovisnih aplikacija [89]. Vidljivo je da neki protokoli imaju samo jednu (obično istoimenu) aplikaciju koja ih koristi, dok su drugi protokoli uspješniji/popularniji, te je u njihovu slučaju došlo do razgraničenja pojmova protokol-aplikacija, odnosno, neke protokole koristi više aplikacija. Za tablice vrijedi napomena da u njima nisu prikazani protokoli koji se više ne koriste, poput Napstera.

Tedo Vrbanec FOI, 2010. 52 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 5: Pregled i usporedba P2P aplikacija za dijeljenje datoteka

G=Gnutella, G2=Gnutella2, BT=BitTorrent, eD=eDonkey, KN=, DC=Direct Connect, ON=OverNet, FT=FastTrack LEGENDA W= ; X= Mac OS X; U=Unixoidi; zatvoreni, vlasnički kôd=VL.; otvoreni kôd=OS; besplatno=Ø Anonimni Sustav Programski / Posljednja Naziv aplikacije Mreža Cijena OS Licenca Info. P2P poveznica jezik verzija nagware1/ G, BT NE magnet X GPL ObjC, Java NE 15.03.2009. 2 Acquisition US$17.99 aMule eD, KN NE ed2k Ø W, U, X GPL C++ NE 16.09.2009. - ANts P2P ANts DA ed2k Ø W, U, X GPL Java NE 03.02.2008. 3 Ares, BT NE ? Ø W GPL Delphi NE 08.02.2010. - G NE ed2k, magnet Ø/US$3.29/mj. W VL. C++ DA 12.08.2009. 4 BitComet BT NE NE Ø W VL. C++ DA 27.03.2010. 5 BitTornado BT NE NE Ø W, U, X OS Python NE 25.03.2010. - BitTorrent 5 BT NE NE Ø W, U, X BitTorrent6 Python NE 28.01.2010. 7 BitTorrent 6 BT NE NE Ø W VL. C++ NE 28.01.2010. 8

1 Nagware je programska podrška koja učestalo poziva korisnika na registraciju. 2 Kod Mac korisnika služi kao alternativa za LimeWire. Koristi Cocoa GUI. 3 Kao proxy mijenja IP adrese drugih korisnika, onemogućujući utvrđivanje tko zapravo skida sadržaje. 4 Do verzije 6 BearShare je besplatan, ali sadrži oglase. Verzija 6 se ne spaja na Gnutellu te ograničava skidanje na samo neke formate datoteka pod određenim uvjetima. 5 Neke su verzije bez adwarea (adware je, ukratko, programska podrška koja prikazuje oglase). 6 BitTorrent Open Source License. 7 BitTorrent 5 je poznat i pod imenom Mainline. 8 Re-brand od µTorrenta.

Tedo Vrbanec FOI, 2010. 53 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 5: Pregled i usporedba P2P aplikacija za dijeljenje datoteka

G=Gnutella, G2=Gnutella2, BT=BitTorrent, eD=eDonkey, KN=Kad Network, DC=Direct Connect, ON=OverNet, FT=FastTrack LEGENDA W= Microsoft Windows; X= Mac OS X; U=Unixoidi; zatvoreni, vlasnički kôd=VL.; otvoreni kôd=OS; besplatno=Ø Anonimni Sustav Programski Spyware / Posljednja Naziv aplikacije Mreža Cijena OS Licenca Info. P2P poveznica jezik Adware verzija Java, G NE magnet Ø W, X GPL NE 09.02.2010. - REALbasic DC++ DC NE magnet Ø W GPL C++ NE 16.03.2010. 1 eDonkey2000 eD, ON NE ed2k Ø/US$19.95 W, U, X VL. C++ NE 25.10.2009. 2 eMule eD, KN NE ed2k Ø W GPL C++ NE 22.02.2009. 3 ExoSee ? NE NE Ø W VL. ? NE 20.01.2007. 4 FDM5 BT NE Ø W GPL C++ NE 01.01.2009. - FreeNet FreeNet DA NE Ø W, U, X GPL Java NE 17.03.2010. - FrostWire G, BT NE magnet Ø W, U, X GPL Java NE 12.03.2010. 6 giFT OpenFT, Ares, GiFT NE NE Ø W, U, X GPL C NE 06.08.2006. - Gnucleus G, G2 NE NE Ø W GPL C++ NE 23.06.2004. - GNUnet GNUnet DA NE Ø W, U, X GPL C NE 29.12.2009. -

1 Postoje mnoge modifikacije, poput LinuxDC++. 2 Obustavljena je podrška za eDonkey2000. 3 Podržava prikrivanje protokola. 4 ExoSee nema verziju za poslovnu uporabu niti ili bilo kakav vidljiv model financiranja. 5 Free 6 Izvedenica od LimeWire, bez blokiranja materijala s autorskim pravima ili pravima kopiranja.

Tedo Vrbanec FOI, 2010. 54 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 5: Pregled i usporedba P2P aplikacija za dijeljenje datoteka

G=Gnutella, G2=Gnutella2, BT=BitTorrent, eD=eDonkey, KN=Kad Network, DC=Direct Connect, ON=OverNet, FT=FastTrack LEGENDA W= Microsoft Windows; X= Mac OS X; U=Unixoidi; zatvoreni, vlasnički kôd=VL.; otvoreni kôd=OS; besplatno=Ø Spywar Anoni Sustav Progra Posljed Naziv e / Inf Mreža mni povezni Cijena OS Licenca mski nja aplikacije Adwar o. P2P ca jezik verzija e gtk- 21.03.20 G NE magnet Ø U GPL C NE - gnutella 10. 02.03.20 FT, G, G2 NE NE Ø W VL. C++ NE - iMesh 10. 26.11.20 FT NE NE Ø W VL. C++ DA 1 Kazaa 06.

Kazaa 09.09.20 FT NE NE Ø W VL. - NE 2 Lite 09. Ares, G, FT, C++, 03.02.20 NE NE Ø W GPL NE 3 KCeasy OpenFT Delphi 08.

LimeWir Ø/US$18 01.09.20 G NE magnet W, U, X GPL Java NE 4 e .88 09.

MLDonk BT, eD, FT, 11.11.20 NE ed2k Ø W, U, X GPL OCaml NE 5 ey G, G2, KN 09.

MonoTor 05.04.20 BT NE NE Ø W, U, X MIT/X11 C# NE 6 rent 09.

Morpheu NEOnet, G, Ø/US$19 01.06.20 NE ? W VL. ? NE - s G2, BT .95 09. W, 23.04.20 MUTE DA NE donacije Linux, GPL C++ NE - MUTE 07. X Nodezilla Private DA NE Ø W, U djelomičn Java NE 29.01.20 7

1 Sadrži adware i spyware (spyware je programska podrška koja nadgleda rad korisnika te o tome izvještava svojeg kreatora, a bez znanja korisnika). Korištenje Kazaae ilegalno je u Australiji. 2 Kazaa kojoj su hakeri onemogućili adware i spyware. Neka vrsta lažne verzije koja cirkulira po Internetu. 3 Jednostavna za korištenje. U pozadini pokreće ugrađeni daemon (samostalni pozadinski proces) pod nazivom giFT koji služi za dijeljenje datoteka. 4 Protiv vlasnika je 2007. godine pokrenuta sudska tužba za povredu autorskih prava i prava na kopiranje. Ima probleme sa spajanjem ukoliko je na računalu instalirana Windows Vista sa Zone Alarmom. 5 Kompleksna aplikacija sa jezgrom, sučeljima: telnet, web, GUI; kompletni i kompleksni udaljeni nadzor, korištenje i obavješćivanje. Omogućeno automatsko SSH tuneliranje. Podržava sve glavne postojeće P2P mreže preko dodataka; moguće ih je uključivati/isključivati. 6 Za instalaciju je potreban ili Mono Framework ili Microsoft .NET Framework.

Tedo Vrbanec FOI, 2010. 55 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 5: Pregled i usporedba P2P aplikacija za dijeljenje datoteka

G=Gnutella, G2=Gnutella2, BT=BitTorrent, eD=eDonkey, KN=Kad Network, DC=Direct Connect, ON=OverNet, FT=FastTrack LEGENDA W= Microsoft Windows; X= Mac OS X; U=Unixoidi; zatvoreni, vlasnički kôd=VL.; otvoreni kôd=OS; besplatno=Ø Spywar Anoni Sustav Progra Posljed Naziv e / Inf Mreža mni povezni Cijena OS Licenca mski nja aplikacije Adwar o. P2P ca jezik verzija e o GPL 09. 22.03.20 BT NE NE Ø W, U, X VL. C++ NE - Opera 10. qBittorre U, 14.03.20 BT NE NE Ø GPL C++ NE - nt Solaris 10. 31.01.20 RShare DA NE Ø W GPL C# NE 2 RShare 07. 31.03.20 DA NE Ø W VL. Delphi NE 3 Share 06. eD, BT, G, ed2k, 06.02.20 NE Ø W GPL C++ NE 4 G2 magnet 10. Ø/donacij e za 04.06.20 Soulseek NE NE W VL. ? NE 5 Soulseek privilegij 09. e

SymTorr Symbia 15.10.20 BT NE NE Ø GPL C++ NE 6 ent n S60 09.

Transmis X, U, 15.03.20 BT NE NE Ø MIT C, ObjC NE 7 sion BeOS 10.

TrustyFil eD, ON, G, NE ed2k Ø/US$29 W VL. ? DA ? 8 es G2, FT, BT µTorrent BT NE NE Ø W VL. C++ NE 11.03.20 9 10.

7 GUI podliježe GPL licenci, a ostatak je aplikacije vlasnički kôd. 2 Po korištenju vrlo sličan eMule. 3 Anonimni razvijatelj. 4 Koristi snažne biblioteke; održava ju grupa volontera. 5 Skidanje kompletnih albuma, pregledavanje korisničkih datotečnih sustava u stablastom pregledu. Ne podržava skidanje iz više izvora. 6 Koristi se na mobilnim telefonima sa Symbian operacijskim sustavom. 7 Male veličine i za više platformi. 8 Koristi navodno ukraden programski kôd od Gnucleus: giFT i avlib. Verzija za Linux je najavljena ali nije nikada izdana. 9 Posebno dizajniran kako bi bio veličinom što manji.

Tedo Vrbanec FOI, 2010. 56 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 5: Pregled i usporedba P2P aplikacija za dijeljenje datoteka

G=Gnutella, G2=Gnutella2, BT=BitTorrent, eD=eDonkey, KN=Kad Network, DC=Direct Connect, ON=OverNet, FT=FastTrack LEGENDA W= Microsoft Windows; X= Mac OS X; U=Unixoidi; zatvoreni, vlasnički kôd=VL.; otvoreni kôd=OS; besplatno=Ø Spywar Anoni Sustav Progra Posljed Naziv e / Inf Mreža mni povezni Cijena OS Licenca mski nja aplikacije Adwar o. P2P ca jezik verzija e 10.02.20 1 BT NE2 magnet Ø W, U, X GPL Java NE - Vuze 10.

Warez Ø/US$19 iP2P DHT NE NE W VL. ? NE 2007. 3 P2P .99 WinMX4, 02.06.20 NE NE Ø W VL. C++ NE 5 WinMX OpenNAP 04. 11.11.20 DA NE Ø W VL. C++ NE - Winny 09. 22.02.20 Wuala NE NE Ø W, U, X VL. Java NE - Wuala 10.

1 Bivši Azureus. 2 Osim kada se koristi . 3 Razvijatelj aplikacije tvrdi da je Warez v3.0 beta bez malignog kôda. 4 Puni naziv: Win MX Peer Network - samostalna i neovisna mreža pod kontrolom samih korisnika. 5 Službeni razvoj je prestao zbog sudske prisile RIAA-e. Verzije 3.53, 3.54, beta 4 i starije mogu se naći i preuzeti s Interneta.

Tedo Vrbanec FOI, 2010. 57 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 6: P2P protokoli za dijeljenje datoteka i ovisne aplikacije

Protokoli Aplikacije Ares Galaxy Ares Warez P2P ABC (Yet Another BitTorrent Client) Azureus BitComet BitSpirit BitTornado BitTorrent.Net BitTorrent G3 Torrent mlMac MLdonkey QTorrent Shareaza µTorrent BCDC++ Direct Connect DC++ NeoModus Direct Connect Grokster iMesh FastTrack Kazaa eMule eDonkey Overnet BearShare iMesh Gnotella Gnucleus Gnutella GTK-gnutella LimeWire Mactella Shareaza Blubster MANOLITO/MP2PN Piolet RocketItNet Napigator OpenNAP WinMX

Tedo Vrbanec FOI, 2010. 58 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 6: P2P protokoli za dijeljenje datoteka i ovisne aplikacije

Protokoli Aplikacije 100Bao 100Bao Aimster Aimster Applejuice Applejuice FreeNet FreeNet GnucleusLAN GnucleusLAN GoBoogy GoBoogy Hotline Hotline KuGoo KuGoo Kuro Kuro OpenFT (giFT) OpenFT (giFT) Poco Poco Tesla Tesla MUTE MUTE Soribada Soribada Soulseek Soulseek Xunlei

Opisivanje svih protokola i aplikacija predstavljenih u tablicama 5 i 6 odvelo bi ovaj rad u nepotrebnu širinu. Stoga će to biti „privilegij“ onih protokola i aplikacija koje imaju ili su imale značajniju ulogu/udio u P2P prometu, čak i ako se više ne koriste, i one koje se koriste primarno za druge namjene poput mrežnog računalstva.

2.4.3 PREGLED P2P PROTOKOLA

Napster je 1999. godine pokrenuo razvoj mreža istovrsnih entiteta. Taj je protokol, realiziran kroz istoimenu aplikaciju stvorio mrežu istovrsnih entiteta koja je omogućila svakom čvoru da ravnopravno sudjeluje u radu mreže sa svojim resursima: diskovni prostor sa dijeljenim datotekama i komunikacijski kanal odnosno njegova brzina komunikacije. Središnji poslužitelj koji je Napster koristio indeksirao je podatke, a datoteke su se istovremeno nalazile kod čvorova. Time je sustav bio centraliziran i brz, ali i ranjiv na zastoje rada središnjeg poslužitelja1. Kako bi se izbjegla takva ranjivost sustava, pojavio se 2000. godine decentralizirani protokol i istoimena mreža, Gnutella. I ona je imala nedostatak: stvarala je veliku količinu mrežnog prometa, jer je koristila (ograničeno)

1 U praksi se središnji poslužitelj (jednina) kojeg korisnik „vidi“ realizira kao transparentno polje poslužitelja koji preuzimaju zahtjeve korisnika ovisno od opterećenja sustava (engl. load balancing).

Tedo Vrbanec FOI, 2010. 59 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta preplavljivanje upitima čime je imala obilježja znatno manje skalabilnosti, nedovoljnu vjerojatnost pronalaženja sadržaja koji se nalazi u mreži te znatno smanjenu brzinu pretraživanja. U idućoj se razvojnoj fazi ili generaciji pojavljuju protokoli koji uvode poboljšanja u vidu super-čvorova i mrjestilišta, poput FastTracka koji je nastao 2001. godine. Kasnije se uvode dodatne inovacije poput distribuirane tablice raspršivanja, a razvoj u današnjem trenutku (2010. godina) doveo je do dominacije jednog P2P protokola: BitTorrenta2. U nastavku slijedi kraći prikaz značajnijih protokola mreža istovrsnih entiteta pri čemu se o značajnosti vodilo po dva kriterija:

• prema rasprostranjenosti odnosno popularnosti i

• prema teorijskom ili povijesnom značenju, tj. idejnom utjecaju na druge protokole. Stoga u prikazu ima i „mrtvih“ protokola, tj. onih koji se više ne koriste i onih koji još nisu implementirani. Ipak, prikaz ni izdaleka ne obuhvaća sve do sada postojeće P2P protokle.

2.4.3.1 NESTRUKTURIRANI P2P PROTOKOLI

Nestrukturirani P2P sustavi [90] sastavljeni su od čvorova koji mreži istovrsnih entiteta pristupaju bez strogih pravila, ne znajući ništa o mrežnoj topologiji sustava.

Napster

Centralizirani sustav prve generacije P2P sustava predstavio je Napster - zajedničko ime za protokol i aplikaciju na aplikacijskoj razini ISO-OSI modela. U suštini, to je, u segmentu rada prijave i indeksiranja, klijent-poslužitelj protokol koji za povezivanje čvorova koristi TCP protokol. U samo nekoliko mjeseci 1999. godine postao je globalni P2P fenomen zapanjivši brzinom svoga širenja. Od svibnja 1999. do veljače 2001. godine narastao je do 29 milijuna registriranih korisnika. Glavna razmjena odvijala se glazbenim datotekama (mp3 formata), pa je glazbena industrija već 1999. godine na temelju povrede autorskih prava započela sudske postupke protiv Napstera. Iako same datoteke nisu bile na Napsterovim poslužiteljima, one su na njima indeksirane te su temeljem tih podataka i omogućavane nelegalne razmjene. Presuđeno je u korist glazbene industrije te su Napsterovi poslužitelji ugašeni, a samim time i cijela Napster P2P mreža. Iako je Napster bio izuzetno uspješan do gubitka sudskih sporova, jasno je da se ovakav centralizirani sustav ne može automatski prilagoditi ekstremnom širenju (nije

2 Dominacija BitTorrenta ipak nije takvog reda veličine da bismo mogli konstatirati da su drugi protokoli ispali iz praktične uporabe.

Tedo Vrbanec FOI, 2010. 60 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta skalabilan), te je osjetljiv u središnjoj točki – tj. u poslužiteljima (grozdu poslužitelja), bez čijeg rada P2P sustav ne može djelovati.

Seti@Home

SETI je akronim od (engl.) Searching for Extraterrestrial Intelligence, projekt koji ima za cilj naći dokaze postojanja izvanzemaljske inteligencije. Projekt koristi računalnu, prvenstveno procesorsku snagu računala koja se nalaze na Internetu, za vrijeme dok su besposlena. Središnji poslužitelj pohranjuje i pakira podatke dobivene iz radio teleskopa u dijelove koje može obraditi prosječno osobno računalo. Obrada se sastoji od obrade signala na način da se pokušaju utvrditi pravilnosti ili anomalije. To se čini na potpuno dobrovoljnoj osnovi, a dobrovoljci sa web stranica SETI@Home inicijalno skidaju i instaliraju programsku podršku – tzv. spasitelja zaslona monitora (engl. Screen Saver). Kada operacijski sustav (prema postavkama korisnika) utvrdi da se računalo ne koristi, pokreće SETI@Home spasitelja zaslona koji kontaktira središnji poslužitelj, skida paket od 200KB, pokreće seriju aktivnosti obrade signala koji se nalaze u paketu, te rezultate od 80KB šalje natrag poslužitelju. Nakon svega zatraži novi paket podataka, tj. pokreće novi ciklus. Anderson [91] projekte poput SETI@Home kod kojih središnja računala samo koordiniraju računala na rubu mreže koja osiguravaju procesnu snagu naziva „obrnutim klijent-poslužitelj“ projektima. Sustav ima impresivne mogućnosti distribuirane obrade podataka: u srpnju 2008. godine imao je snagu od 555 tera FLOPS-a [92] odnosno preko pola penta FLOPS-a, a u ožujku 2010 godine 760 tera FLPOS-a. Ipak, čvorovi međusobno ne mogu komunicirati, pa tako ni koordinirati obradu podataka.

BOINC

BOINC [93][94] je besplatni programski proizvod otvorenog koda koji se koristi za mrežno računalstvo (grid), koristeći se računalnom snagom koju ustupaju pojedinci - dobrovoljci. Ime je nastalo kao akronim od The Berkeley Open Infrastructure for Network Computing. BOINC je nekomercijalni middleware prvobitno razvijen za potporu SETI@home projekta, ali je ubrzo postao koristan kao platforma za druge distribuirane aplikacije u raznovrsnim područjima, poput matematike, medicine, molekularne biologije, klimatologije i astrofizike. Razvio ga je tim iz Space Sciences Laboratory pri University of California. BOINC omogućava istraživačima da koriste izuzetnu procesorsku snagu osobnih računala diljem svijeta. Kao kvazi superračunalna platforma, BOINC je u srpnju

Tedo Vrbanec FOI, 2010. 61 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

2009. godine koristio oko 570000 aktivnih računala koja su imala ukupnu procesnu moć od 2 peta FLOPS-a, što je već tada bilo dvostruko brže od istodobno najjačeg superračunala (IBM Roadrunner sa 1,026 PFLOPS-a1). U ožujku 2010. broj aktivnih računala popeo se na oko 610000, a snaga na 5,8 PFLOPS-a. BOINC financira američka Nacionalna zaklada za znanost. BOINC klijent je na raspolaganju za sve relevantne operacijske sustave.

Gnutella

Gnutella [97] je ogledni primjer protokola koji zahtjeve za pretraživanje objekata obrađuje algoritmom koji koristi preplavljivanje čvorova (engl. Flooded Request Protocol). Dizajnirana je za dijeljenje resursa u distribuiranim decentraliziranim sustavima. Zbog načina pretraživanja preplavljivanjem u ograničenom broju koraka, Gnutella protokol ima nedostatke nedovoljne efikasnosti [98][99] u pronalaženju rijetkih sadržaja te slabe skalabilnosti. Ipak, radi svoje jednostavnosti, jedan je od popularnijih protokola za razmjenu podataka putem Interneta. Na slici 18 [100], prikazan je model pretraživanja kod Gnutella protokola.

Slika 18: Model pretraživanja kod Gnutella protokola Izvor: Brain, M., HowStuffWorks "How Gnutella Works", HowStuffWorks, Inc., 2002.,, (22. lipanj 2009.)

1 U srpnju 2008. godine najjaču pojedinačnu računalnu snagu na svijetu predstavljalo je super-računalo pod nazivom IBM Roadrunner, sa snagom od 1.026 peta FLOPS-a [95][96].

Tedo Vrbanec FOI, 2010. 62 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Zahtjev za pronalaženjem određenog sadržaja prosljeđuje se svim susjednim čvorovima pri čemu početni zahtjev ima sedam koraka, a proslijeđenom se umanjuje preostali broj koraka prosljeđivanja za jedan. Ograničenje broja koraka je kontrolni mehanizam koji preplavljivanje ne pretvara i u gušenje mreže. Spajanje novog čvora na Gnutella mrežu odvija se tako da se on spoji na barem jedan čvor koji se već nalazi unutar mreže. To postiže na različite načine, a najčešće iz Gnutella Web Cache-a. Pored toga načina koristi se i (1) popis IP adresa vrlo vjerojatnih čvorova koji se isporučuje zajedno sa aplikacijskim softverom, (2) UDP cache čvorova1 te (3) IRC. Jednom povezan čvor pokušava se povezati sa čvorovima o kojima je podatke dobio od čvorova iz inicijalnog povezivanja, sve dok ne ispuni određenu kvotu, pri čemu lokalno pohranjuje adrese s kojima nije pokušavao stupiti u kontakt te odbacuje adrese s kojima je neuspješno pokušao stupiti u kontakt. Gnutella protokol ima dvije verzije: 0.4 i 0.6. Potonja dozvoljava raslojavanje čvorova u dvije skupine: krajnje čvorove i super- čvorove (engl. Leaf Nodes i UltraPeers). Krajnji čvorovi su oni čvorovi koji nemaju dovoljno snage postati super-čvorovi, odnosno nisu uspjeli osigurati funkcionalnosti super- čvorova. Stoga krajnji čvorovi samo održavaju vezu sa super-čvorovima te posreduju kod povezivanja novog čvora na mrežu, ali ne traže odgovarajućeg super-čvora. S druge strane, super-čvorovi održavaju mnogobrojne veze sa drugim super-čvorovima i krajnjim čvorovima, održavaju zapise o resursima krajnjih čvorova te djeluju kao štit za krajnje čvorove koji su na njega povezani jer ih štite od mnogobrojnih upita i pretraživanja. Postoje pokušaji da se Gnutella protokol učini skalabilnijim, poput Gia P2P protokola [101]. Ipak, ti su pokušaji ostali na teorijskoj razini te na razini implementacije u P2P i mrežnim simulatorima [102].

NeuroGrid

NeuroGrid [103] je decentralizirani samo-prilagođavajući sustav za pretraživanje [104]. Protokol definira pretraživanje kao semantički uvjetovano proslijeđivanje upita ovisno od njegova sadržaja. Samo-prilagođavajući mehanizam protokola je samo-učeći, te dinamički prilagođava meta podatke koji opisuju sadržaje čvorova i datoteka koje nose te sadržaje. NeuroGrid je inicijalno razvijen kao Gnutellin alternativni model usmjeravanja pretraživanja, omogućujući komunikaciju ponad HTTP protokola. U NeuroGridu, resursi P2P mreže povezani su sa setom ključnih riječi. Čvor koji želi doći do određenog sadržaja

1 UDP hosts cache se nalazi na gnutella.net poslužiteljima.

Tedo Vrbanec FOI, 2010. 63 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta mora znati ključne riječi povezane sa tim sadržajem. Protokol je načinjen na takav način da minimizira potrebu za slanjem poruka na štetu intenziviranja obrade upita. Za razliku od Gnutelle, pretraživački upiti ne prosljeđuju se automatski svim povezanim čvorovima već čvor odlučuje na temelju modela prosljeđivanja kako će i kome proslijediti upit.

FastTrack

FastTrack je P2P protokol nastao 2001. godine. Osnova je mnogih mreža istovrsnih entiteta, a najpoznatije su Kazaa, Grokster i Morpheus. FastTrack [105] je decentralizirani protokol za dijeljenje datoteka koji podržava pretraživanje pomoću meta podataka. Čvorovi formiraju prekrivajuću strukturu čvorova koja sadrži i super-čvorove [43] radi efikasnijeg pretraživanja. Super-čvorovi su čvorovi koji imaju veću brzinu veze na Internet, više diskovnog prostora, više procesne moći, te su se dobrovoljno prijavili kao kandidati za ulogu super-čvora koja od njih traži lokalnu pohranu meta podataka i odgovaranje na upite čvorova. Obični čvorovi pohranjuju na super-čvorove meta podatke o datotekama koje dijele s drugim čvorovima. Obični čvorovi preuzimajući upit, isti prosljeđuju do super-čvora. Sustav može postojati i funkcionirati i bez super-čvorova, ali u tom slučaju ima veću latenciju primanja odgovora na upite. Pristup sa super-čvorovima također koristi komunikacijski kanal, jer je potrebno ažurirati indeks sadržaja koji se nalazi kod super-čvorova, umjesto čvorova koji su na njih spojeni. Super-čvorovi koriste razašiljanje (engl. Broadcasting) prilikom pretraživačkih upita i vraćanja povratnih rezultata upita čvorovima i drugim super-čvorovima.

EDonkey

EDonkey protokol jedan je od najuspješnijih protokola za dijeljenje i razmjenu datoteka [106]. Pripada skupini decentraliziranih protokola s distribuiranim poslužiteljima. Za razliku od Gnutelle, nije u potpunosti decentraliziran jer koristi poslužitelje. U odnosu na Napster, ne koristi jedan središnji poslužitelj1 koji je jedno središnje mjesto zastoja. EDonkey koristi poslužitelje koji se nalaze na snažnijim čvorovima te ih administriraju napredniji korisnici. Poslužitelji posjeduju mehanizme među-poslužiteljske komunikacije. Općenito gledajući, eDonkey mreža ima strukturu koja se temelji konceptu klijent- poslužitelj. Poslužitelji su slični FastTrackovim super-čvorovima: ne sadrže datoteke već upravljaju podacima o dijeljenim sadržajima što se nalaze na klijentskim računalima koji su na njih povezani. Klijenti su čvorovi koji dijele sadržaje. Indeksi sadržaja nalaze se na

1 Preciznije: jednu farmu poslužitelja.

Tedo Vrbanec FOI, 2010. 64 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta poslužiteljima koji ih i održavaju. Ako čvor traži neki sadržaj, zahtjev za njim šalje poslužitelju ili više njih. EDonkey protokol ima tri glavna obilježja [107]:

• za svoj rad koristi više poslužitelja,

• čvor može preuzimati sadržaj istovremeno od više drugih čvorova i

• sadržaj se može dijeliti i prije nego što je u potpunosti preuzet.

BitTorrent

BitTorrent je najpopularniji P2P protokol koji se koristi na Internetu. Pripada skupini centraliziranih P2P protokola. Njime prolazi značajna količina cjelokupnog prometa. Stalno povećava svoj udio u, ionako na Internetu prevladavajućem, P2P prometu. Tako je primjerice 2006. godine već zauzimao od 45% do 53% [84] svekolikog P2P prometa, 2007. godine od 40% do 73% [85], a 2008. godine taj je udio povećan na 58% do 80% [86], ovisno o promatranom dijelu svijeta. BitTorrent je primjer samo-skalabilnog P2P protokola koji se koristi za efikasnu distribuciju sadržaja [108]. Osnovna ideja protokola je podjela datoteka u dijelove, a čvorovi koji preuzmu neki dio i sami postaju distributeri za druge čvorove koji taj dio još nisu preuzeli. Na taj se način dijele i troškovi distribucije sadržaja. Tako je dovoljno da se sadržaj samo jednom preuzme u cijelosti, pri čemu je sasvim moguća situacija da niti jedan čvor nema cijeli sadržaj, a da ga u konačnici u cijelosti preuzme proizvoljan broj čvorova. Pri tome se preuzimanje ubrzava kako raste broj uključenih čvorova, jer svaki čvor doprinosi nekim svojim komunikacijskim mogućnostima davanja sadržaja. Protokol ima visok stupanj robusnosti te implicira jednostavno korisničko sučelje [109], što su važni čimbenici uspjeha, odnosno popularnosti. Od drugih se protokola razlikuje po tri osobine:

• protokol ne uključuje mehanizam za pretraživanje, nego se oslanja na središnje točke pretraživanja, najčešće web orijentiranim (engl.) torrent trackerima;

• protokol primjenjuje princip (politiku) dijeljenja datoteka, a ne dijeljenja mapa;

• protokol osigurava mehanizam razmjene između klijenata koji preuzimaju istu datoteku, tj. uvodi određenu razinu pravednosti u sustav1. BitTorrent protokol koristi posebnu terminologiju:

• dijelovi – svaka se datoteka dijeli u dijelove uobičajene veličine 256KB;

1 Protokol dozvoljava brzinu i količinu preuzimanja dijelova datoteka proporcionalno dosadašnjoj količini i brzini davanja dijelova.

Tedo Vrbanec FOI, 2010. 65 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

• blokovi – svaki se dio dalje dijeli na blokove uobičajene veličine 16KB; blokovi su temeljne jedinice za prenošenje1;

• leecher – u doslovnom prijevodu pijavica – čvor koji preuzima datoteku(e);

• seeder – u doslovnom prijevodu sijač – čvor koji u cijelosti preuzeo datoteku ali je i dalje nudi drugim čvorovima na preuzimanje;

• swarm – u doslovnom prijevodu roj – svi leecheri i seederi jednog torrenta;

• torrent – identifikacijska datoteka2 koja opisuje skupinu datoteka koja se dijeli pod određenim zajedničkim logičkim imenom, kao i sama ta skupina datoteka; temelj je pokretanja preuzimanja, tj. uključenja u neki swarm;

• tracker – poslužitelj(i) na kojima se nalaze opisi torrent datoteka koji korisnici daju na preuzimanje; postoje javni (otvoreni) i privatni (zatvoreni) trackeri. BitTorrent protokol je u novijim inačicama implementirao distribuiranu tablicu raspršivanja, preciznije Kademlia algoritam za način rada bez trackera. Sve više se poslužitelja (trackera) gasi, a na ovaj način bittorrent razmjena opstaje, ali na strukturirani i distribuirani način.

OpenFT

OpenFT (Open FastTrack) je P2P protokol za dijeljenje datoteka, razvijen za projekt giFT3 iz nastojanja da se i aplikacijama otvorenog koda omogući povezivanje na mreže nastale na temelju vlasničkog protokola zatvorenog koda FastTrack, poput Kazaa. Reverznim inženjeringom [111] to je umalo uspjelo, no razvijatelji FastTrack protokola promijenili su način enkripcije koju protokol koristi te zadatak učinili nemogućim. Stoga se cijeli projekt okrenuo prema cilju da protokol postane „punokrvni“ protokol, te još viši cilj – da se njime može povezati na druge P2P sustave za dijeljenje datoteka. Iako u nazivu ima FastTrack, to je sasvim različit protokol [112], pri čemu je od prvotnog preuzeo neke ideje. Protokol je sličan Gnutelli2 u smislu da se pretraga odnosno upit za sadržajem rekurzivno prosljeđuje između onih čvorova koji su zaduženi da čuvaju i održavaju indeks

1 Čvor može početi dijeliti blok tek nakon što je dio kojemu pripada u cijelosti preuzet, te je njegova cjelovitost i točnost provjerena hash funkcijom. 2 .torrent datoteka sadrži sljedeće podatke o datotekama koje se dijele: nazive datoteka, veličine datoteke, potpise dijelova i URL trackera. 3 GiFT je [110] „zbirka različitih softverskih komponenti usmjerena prema poboljšanju ukupne uporabljivosti mnoštva peer-to-peer file-sharing mreža. Taj cilj je ostvaren objedinjavanjem komponenti tako da korisnik programske podrške može izabrati bilo koji od dostupnih sučelja za pristup bilo kojoj od dostupnih mreža. Središnja aplikacija, giftd, koristi arhitekturu temeljenu na dodacima (engl. plugins), sposobnu za istovremeno korištenje više mreža preko jednog korisničkog sučelja. Projekt giFT predstavlja skupinu razvijatelja programske podrške odgovornu za stvaranje jezgrenih komponeneta giFT-a, kao i cjelokupni dizajn sustava.“

Tedo Vrbanec FOI, 2010. 66 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta datoteka koje čvorovi dijele. U OpenFT mreži čvorovi objavljuju popis svojih dijeljenih datoteka drugim čvorovima, preciznije trima koje odabere kao „roditelje“. Taj se popis, indeks, dalje ne proslijeđuje drugim čvorovima. Detaljnije, čvorovi mogu biti vrste user, search i index. Većina čvorova je vrste user i kao takvi nemaju neke posebne funkcije. Čvorovi vrste search bave se pretraživačkim zahtjevima svoje „djece“ kao i indeksiranjem datoteka koje se kod „djece“ nalaze. Stoga moraju imati bržu Internet vezu i znatnije računalne resurse (jači procesor i više radne memorije). Najjača računala s najboljom Internet vezom dobivaju status index, sa zadacima održavanja popisa čvorova vrste search te održavanja mrežne strukture. Čvor može istodobno biti i vrste search i vrste index. Čvor vrste user odabire tri čvora vrste search da budu njegovi „roditelji“. Ukoliko ga potencijalni „roditelj“ prihvati kao „dijete“, isporučuje mu popis svojih dijeljenih datoteka. Jedan čvor vrste search može biti „roditelj“ za maksimalno petsto „djece“ vrste user. Zbog svoje statičke strukture indeks i search čvorova, sustav je istovremeno vrlo skalabilan, ali i pomalo osjetljiv na dostupnost search i index čvorova i njihovih vrlo stabilnih odnosa. Valja spomenuti i jedan, u odnosu na prikazani openFT, misteriozan istoimeni protokol. Prema [113] (Fujitsu dokumentacija), openFT se intenzivno koristi kao rješenje za potpuno automatizirani prijenos datoteka u velikim poduzećima koja obično imaju heterogenu IT infrastrukturu. U stanju je baratati s velikim količinama podataka kritičnih za poslovanje „s apsolutnom pouzdanošću i sigurnošću“ [113] (automatsko ponovno pokretanje u slučaju greške u radu, podržava klasterski rad poslužitelja), skalabilan je, ima ugrađenu paralelnost prijenosa dijelova datoteka s različitih lokacija, podržava kriptiranje podataka i komunikacije te provjeru integriteta prenesenih podataka (hash funkcijom). Ipak, mora se reći, postoji sumnja da su P2P protokol razvijen u sklopu projekta giFT [110] i Fujitsu openFT [113] dva različita protokola jednakog naziva, ili je Fujitsu implementirao openFT protokol u komercijalnu svrhu, uz aplikacijsku nadogradnju koja pruža niz dodatnih funkcionalnosti koje originalni protokol ne pruža. Na žalost, Fujitsu ne daje nikakvog sigurnog dokaza osim očitosti jednakog imena i iste funkcionalnosti, da protokoli imaju neku vezu ili da su čak jedan te isti. Stoga, predostrožnosti radi, a zbog velikih razlika između obilježja dva protokola jednakog naziva, u tablicama se u poglavlju 3.2 Parametri opisa P2P mreža (str. 86), opisuju obilježja openFT protokola nastalog u sklopu projekta giFT, dakle, njegovu jedinu službenu inačicu.

Tedo Vrbanec FOI, 2010. 67 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Direct Connect

Direct Connect je peer-to-peer protokol za dijeljenje datoteka, koji ima mogućnost međusobne razmjene poruka korisnika (engl. chat) [114]. Klijenti se spajaju na središnji čvor, koji se naziva hub (razdjelnik, čvorište, koncentrator). Hub sadrži popis čvorova koji su na njega spojeni, kao i popis datoteka koje ti čvorovi dijele. Korisnici mogu pretraživati datoteke, a preuzimanje se vrši izravno od drugih klijenata. Hub zbog pretraživanja mora imati značajne komunikacijske mogućnost, odnosno veliku širinu komunikacijskog pojasa prema Internetu. Direct Connect je protokol koji naredbe i informacije razmjenjuje bez enkripcije, u obliku običnog teksta. Ne postoji službena specifikacija protokola, već se nove aplikacije moraju koristiti reverznim inženjeringom kako bi zadržale kompatibilnost sa postojećim sustavima, posebno s prvim NeoModusovim1 klijentom DClite. Direct Connect hubovi su središnji poslužitelji na koje se povezuju klijenti, dakle, Direct Connect mreža nije decentralizirana u mjeri kao što je to Gnutella ili FastTrack. Hubovi osiguravaju informacije o klijentima te osiguravaju mogućnost pretraživanja i razmjene poruka. Razmjena datoteka odvija se na standardni način svih sustava istovrsnih entiteta – neposrednom vezom čvora s čvorom. Hubovi često imaju posebna područja interesa. Uglavnom imaju minimalne zahtjeve glede ukupne količine podataka koje korisnik mora dijeliti ako se želi spojiti na njih. Dapače, mnogi hubovi imaju i druge zahtjeve koji se tiču kvalitete sadržaja, tj. točno određenih vrsta i kvaliteta sadržaja. Korisnici se uključuju na mrežu putem hubova koji brinu o registraciji i autentifikaciji (koja je kao i sve druge poruke u obliku običnog, nekriptiranog teksta). Iako protokol nema definirano povezivanje hubova, postoje aplikacije koje to omogućuju, tako da korisnici mogu dijeliti datoteke i razgovarati s korisnicima koji su spojeni na druge hubove. Protokol [115] nije zadovoljavajuće skalabilan zbog neusmjerenog pretraživanja koje se odvija prema svim čvorovima (emitiranjem, engl. Broadcasting). Direct Connect protokol ima sljedeća obilježja [114]:

• Protokol ne poznaje neku opću identifikacijsku shemu. Korisnici se identificiraju svojim identifikatorom koji su sami izabrali (nadimak, engl. nickname) i pri tome ih korisnici mogu samostalno mijenjati od jednog do drugog spajanja na hub.

• Ne bilježe se, ne pohranjuju i ne povezuju podaci koji bi mogli utjecati na anonimnost čvorova i korisnika:

1 NeoModus je tvrtka koja je u studenom 1999. godine započela poslovnu aktivnost programskim dodatkom (engl. adware) pod nazivom Direct Connect. Kasnije je izdala prvu „samostojeću“ aplikaciju DClite.

Tedo Vrbanec FOI, 2010. 68 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

◦ ulazni zahtjev za vezom tipa klijent-klijent ne može se povezati sa stvarnom vezom1;

◦ rezultati pretraživanja ne mogu se povezati s konkretnom pretragom2.

• Protokol ima mogućnost izbacivanja korisnika iz huba3 ili njegovo prebacivanje na drugi hub4.

• Ne postoji ekvivalent HTTP referenci5.

• Hub može klijentima slati „naredbe“, tj. poruke i obavijesti.

• Protokol koristi pojam slotova (utora), kao broja mjesta za usporednu razmjenu6.

• Kod veza između čvorova (klijent-klijent) pravo prvenstva preuzimanja datoteka ima čvor kojem je slučajnim odabirom dodijeljen viši broj.

• Spajanje na hub i preuzimanje se vrši TCP protokolom, a pretraživanje UDP protokolom.

• Klijenti mogu biti u pasivnom ili aktivnom načinu rada (modu). Oni u aktivnom modu mogu preuzimati sadržaje od svih čvorova povezanih u mrežu, a klijenti u pasivnom modu mogu preuzimati samo od aktivnih, a postoje i druga ograničenja kod pretraživanja koja su varijabilna od jedne do druge aplikacije koja koristi Direct Connect protokol. Direct Connect protokol je relativno popularan. S obzirom da postoji dosta prostora za njegovo poboljšanje7 krajem 2007. godine je načinjen napredniji protokol pod nazivom Advanced Direct Connect.

1 Kada klijentu dođe poruka „Conect-to-me“ (spoji se na mene) u kojoj je naznačena IP adresa, klijent kome je upućena poruka nema mehanizam kojim bi provjerio da li je dana IP adresa zaista od klijenta koji je poruku uputio. Tako napredniji ali zlonamjerni korisnik može iskoristiti ovu slabost za ostvarivanje DDoS napada na neku IP adresu. 2 Recimo da postoji više upita (odnosno zahtjeva za pretraživanjem). Pretpostavimo da ćemo dobiti i više rezultata pretraživanja. Protokol nema mogućnost utvrđivanja veze između zahtjeva i rezultata pretraživanja, što znači da se ne zna koji rezultat pretraživanja je odgovor na koji upit (odnosno zahtjev za pretraživanjem). 3 Hub nije dužan dati korisniku razlog izbacivanja. 4 Pri tome nema ograničenja na koji će se hub korisnik prebaciti, ali korisnik mora dobiti razlog prebacivanja. 5 Prilikom posjete web stranice, referenca označava stranicu s koje je korisnik došao, odnosno HTTP referenca označava stranicu sa koje je korisnik slijedio poveznicu. HTTP referenca se normalno prosljeđuje kroz globalnu HTTP varijablu koja se naziva HTTP_REFERER ili HTTP_REFERRER. 6 Broj slotova ekvivalent je broju korisnika koji istovremeno mogu preuzimati datoteke od nekog korisnika koji taj broj može mijenjati. 7 Protokolu najviše nedostaje mogućnost korisničkog ocjenjivanja sadržaja (engl. rating) te potpisivanje datoteka hash funkcijom.

Tedo Vrbanec FOI, 2010. 69 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

2.4.3.2 STRUKTURIRANI (DHT) P2P PROTOKOLI

Topologija prekrivajuće mreže sustava istovrsnih entiteta u slučaju strukturiranih P2P protokola je strogo kontrolirana [90]: sadržaji nisu smješteni (polu)slučajno već kod čvorova koji su posebno locirani, a s ciljem da se sustav efikasnije odaziva na učestale upite. Temelj je takvog strukturiranog sustava distribuirana tablica raspršivanja u kojoj su informacije o podacima i objektima smještene u čvorovima čiji su identifikatori u određenoj relaciji s identifikatorima podataka i objekata. DHT sustavi imaju velik prostor jedinstvenih identifikatora koje nasumice dodjeljuju čvorovima kada se uključe u sustav. Podatkovnom se objektu dodjeljuje jedinstveni identifikator – ključ, koji se bira iz istog prostora identifikatora. Protokol ključeve spaja s nekim, točno definiranim, aktivnim čvorom. Tako nastaju uređeni parovi (ključ, vrijednost) koji se skalabilno pohranjuju kroz prekrivajuću mrežu. Svaki čvor je zadužen za pohranu male tablice usmjeravanja koja sadrži podatke o susjednim čvorovima, tj. njihovim identifikatorima i IP adresama. Upiti i poruke se kroz mrežu usmjeravaju na način da svaki čvor na putu prosljeđuje čvoru koji je bliže ključu u prostoru identifikatora. Teorijski, DHT temeljeni sustavi mogu garantirati da se svaki podatkovni objekt može dohvatiti u O(logN) skokova, gdje je N broj čvorova u sustavu. Različiti DHT sustavi imaju različite organizacijske sheme podatkovnih objekata i strategije usmjeravanja upita. Prvi P2P protokoli temeljeni na distribuiranoj tablici raspršivanja bili su Chord, CAN, Tapestry i Pastry, koji su se pojavili oko 2001. godine. Kasnije su upotrebu DHT-a preuzeli i drugi protokoli, poput Koorde, Kademlie i BitTorrenta. DHT P2P protokoli imaju dvije temeljne funkcije:

• pridruživanje ključa identifikatoru: put (k, d),

• dohvaćanje identifikatora pomoću poznatog odnosno zadanog ključa: d=get(k). Distribuirana tablica raspršivanja distribuirana je po čvorovima, pri čemu svaki čvor održava ažurnim svoj podskup podataka i pripadnih ključeva. Ovisno od načina organizacije prostora identifikatora, DHT P2P protokoli implementiraju usmjeravanje upita u jednoj ili više dimenzija [38].

FreeNet

FreeNet [116][117][118][119] je protokol koji omogućuje anonimnost dijeljenja datoteka, pregledavanja web stranica te njihove objave, sudjelovanje korisnika u forumskim raspravama, a sve bez straha od cenzure ili represije. FreeNet stvara

Tedo Vrbanec FOI, 2010. 70 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta decentralizirani sustav kako bi bio manje ranjiv na napade. Kada se koristi u tzv. „“ načinu rada u kome su korisnici povezani isključivo sa svojim prijateljima, vrlo ga je teško otkriti. FreeNet pri svome radu stvara mrežu istovrsnih entiteta, a od korisnika koristi dio komunikacijskog kanala i dio diskovnog prostora. FreeNet maksimalno štiti identitete primatelja i pošiljatelja sadržaja. Mreža je pomalo neobična jer je moguće objaviti neki sadržaj i zatim se odspojiti s mreže. Sadržaj će ostati dostupan drugim korisnicima mreže, iako će na kraju ipak biti obrisan ukoliko nitko ne bude za njega zainteresiran. FreeNet će sadržaj kopirati i seliti po mreži, već prema zahtjevima korisnika, što dodatno otežava (bilo kome) njegovo uklanjanje s mreže. Ukoliko je sadržaj popularan, mreža stvara više kopija kako bi uvijek bio dostupan. Na slici 19 prikazan je osnovni koncept pretraživanja sadržaja na FreeNet mreži [120]: zahtjev putuje po mreži od čvora do čvora, vraćajući se iz „slijepe ulice“ (3. korak) ili petlje (7. korak), prije nego što locira željenu datoteku.

Slika 19: Koncept pretrage kod FreeNet sustava Izvor: -, Freenet - Wikipedia, the free encyclopedia, Wikimedia Foundation, Inc., 9. kolovoz 2009., , (13. kolovoz 2009.)

FreeNet se može koristiti za publiciranje web sjedišta (tzv. „freesites“), za komunikaciju putem oglasnih ploča, distribuciju sadržaja i slanje elektroničke pošte. FreeNet klijentske aplikacije postoje za sve relevantne operacijske sustave. Osnovna ideja projekta i njegov dizajn opisan je magistarskoj radnji Iana Clarkea, pod nazivom „A Distributed Decentralized Information Storage and Retrieval System“ (Sustav distribuirane pohrane i dohvata informacija), koju je autor objavio 2000. godine na web stranicama, s ciljem da se u suradnji s drugim pojedincima dođe do upotrebljivog programskog proizvoda. Prema Clarkeu [121], ciljevi su FreeNeta sljedeći:

Tedo Vrbanec FOI, 2010. 71 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

• mreža ne smije imati središnju kontrolu ni administraciju,

• prividno mora biti nemoguće silom ukloniti neku informaciju s mreže,

• i autori i čitatelji informacija moraju ostati anonimni ako to žele,

• informacije moraju biti distribuirane kroz mrežu na način da je teško utvrditi gdje su pohranjene,

• raspoloživost informacije mora se povećavati u skladu s povećanjem zahtjeva za njom te tako spriječiti nastanak Slashdot efekta1,

• informacija putuje s dijelova Interneta gdje je za njom manja potražnja u dijelove gdje je potražnja veća. FreeNet ima implementiranu distribuiranu tablicu raspršivanja i (slabu) strukturu inherentnu DHT-u. DHT se koristi zbog svojih dobrih svojstava, ali s druge strane, zbog svoje ideje da se sadržaji ne smiju jednostavno i lako locirati te fluktuacije sadržaja po mreži, FreeNet je ostao što je moguće manje strukturiran.

Chord

Chord [98] [122] je decentralizirani P2P protokol za pretraživanje koji pohranjuje parove (ključ, vrijednost) za distribuirane sadržaje. Među prvim je P2P protokolima koji koristi DHT. Chord pronalazi čvor u strukturiranoj mreži čvorova koji ima traženu vrijednost pomoću poznatog ključa. Ključ je indeks na traženi entitet. Čvor koji sadrži traženu vrijednost određuje se uz pomoć hash funkcije kojoj se dodijeljuje identifikator svakom čvoru i svakom ključu, potpisujući hash funkcijom IP adresu i ključ. Svaki je ključ pohranjen u prvom čvoru čiji je identifikator jednak zadanom ključu ili je njegov sljedbenik. Naime, [122] u Chordu su aktivni čvorovi povezani u topologiju prstena (slika 20, str. 73). Svaki čvor održava tablicu usmjeravanja s podacima o samo O(logN) čvorova. Duljina identifikatora m, mora biti dovoljno velik broj koji omogućava da je vjerojatnost jednakog potpisa dvaju čvorova ili dvaju ključeva zanemariva. Identifikatori su povezani u prsten veličine modulo2 2m. Dakle, maksimalni broj čvorova u prstenu je 2m, a vrijednosti koje poprimaju su između 0 i 2m-1. Kao što se kod računalnog programiranja većina struktura podataka izvodi pokazivačima, tako se i ova topologija prstena u Chordu izvodi pokazivačima. Tako svaki čvor ima svoga prethodnika i sljedbenika. S obzirom na prirodu P2P sustava, često se događa da neki čvorovi nestaju iz sustava, a drugi se u njega

1 Slashdot web sjedište (http://slashdot.com) je vrlo posjećeno. Stoga, promet koji se ostvaruje preko njenih poveznica na manja web sjedišta mogu ta manja usporiti ili čak i onesposobiti kroz nekoliko dana. 2 Modulo je matematička funkcija koja stvara klase. Primjeri: 0 mod 3 = 0, 1 mod 3= 1, 2 mod 3 = 2, 3 mod 3 = 0, 4 mod 3 = 1, 5 mod 3 =2, 6 mod 3 = 0 itd.

Tedo Vrbanec FOI, 2010. 72 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta uključuju. Stoga svaki čvor pamti ne samo prethodnika i sljedbenika već segment prstena kako bi bila veća vjerojatnost da njegovi pokazivači prethodnika i sljedbenika pokazuju na stvarni prethodnik i sljedbenik. Slika 20 pokazuje [122] prsten kojem je m=6, dakle 2m=64, tj. čvorovi imaju identifikatore od 0 do 63. Konkretni prsten ima deset čvorova i pohranjuje pet ključeva. Sljedbenik identifikatora 10 je čvor 14, dakle ključ 10 bi trebao biti smješten u čvoru 14. Isto tako, ključevi 24 i 30 trebali bi se nalaziti kod čvora 32, ključ 38 kod čvora 38, a ključ 54 kod čvora 56.

Slika 20: Chord protokol - prstenasta topologija veza Izvor: Stoica, I. I. D., Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications, 2002.

Chorde protokol ima i nekoliko modifikacija, a najpoznatija je Koorde [123] koja koristi de Bruijnovo1 trodimenzionalno binarno stablo umjesto prstena.

1 Nicolaas Govert de Bruijn, živući matematičar rođen 1918. godine. Između ostalog se bavio kombinatorikom, a rezultat toga rada su i de Bruijnovi trodimenzionalni grafovi koji su pri Koorde korišteni za trodimenzionalno binarno stablo.

Tedo Vrbanec FOI, 2010. 73 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

CAN

CAN (Content Addressable Network) [124][125] je distribuirana decentralizirana P2P infrastruktura koja osigurava funkcionalnost hash tablice na skalabilan način, za mrežu proizvoljne veličine (cijeli Internet). Pored skalabilnosti, CAN je dizajnirana kako bi bila otporna na greške i samoorganizirajuća. Njena se arhitektura može opisati kao višedimenzionalni koordinatni prostor (d=broj dimenzija) dinamički podijeljen između svih čvorova (N=broj čvorova) na particije. Čvor održava IP adresu i virtualnu koordinatu zone za svaki svoj susjedni čvor. CAN poruka uključuje odredišne koordinate. Koristeći se koordinatama susjeda, čvor usmjerava poruku prema odredištu na jednostavan način – šalje je prema koordinatama najbližem susjednom čvoru. CAN je jedan od četiri istovremeno predloženih načina realizacije distribuirane tablice raspršivanja, predstavljen istovremeno sa Chordom, Pastryem i Tapestryem, ali čini se da nije nikada bio implementiran.

Tapestry

Tapestry protokol [126][127] stvara usmjeravajuću DHT (infra)strukturu čija je zadaća efikasni prijenos upita i poruka o određenom sadržaju. Protokol posebno vodi računa o efikasnom radu u uvjetima velikog opterećenja čvorova i mreže te na otpornost na greške koje se javljaju u radu čvorova i mreže. Glavna obilježja protokola su samo- organiziranost, skalabilnost i robusnost. Tapestry ima mehanizme koji mu omogućuju da utvrdi udaljenost između čvorova i podatkovnih objekata u sustavu, što mu omogućuje usmjeravanje poruka neposredno ka čvoru koji sadrži najbližu kopiju objekta ili uslugu, koristeći isključivo veze od-točke-do-točke, bez središnjih servisa. Za svoj rad koristi i generator slučajnih brojeva kako bi uspio postići što ravnomjernije opterećenje čvorova i mreže, ali i određivanje lokalnosti čvorova i objekata. Rad Tapestry protokola temelji se na distribuiranoj tehnici pretraživanja koju su predložili Plaxton, Rajaraman i Richa [128] 1997. godine1, a dodani su mu i mehanizmi kako bi se osigurala dostupnost, skalabilnost i prilagodljivost. Strukturu sustava koju stvara Tapestry lako je obnoviti u slučaju pada, prestanka rada iz bilo kojeg razloga pa i u slučaju mrežnog napada [126]. To svojstvo sinergijski dobiva na značenju u svijetlu druge dobre osobine – sustav je samo- administrirajući.

1 Tapestry, Pastry i Kademlia su protokoli koji se temelje na tzv. Plaxton mrežnoj strukturi koja održava pokazivače na one čvorove u mreži čiji identifikatori odgovaraju elementima stablaste strukture prefiksa identifikatora [51].

Tedo Vrbanec FOI, 2010. 74 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Pastry

Pastry [129] je decentralizirani P2P sustav za pronalaženje i usmjeravanje sadržaja za veoma velike, samo-podešavajuće prekrivajuće mreže čvorova povezanih putem Interneta. Otporan je na greške i skalabilan. Pouzdano pronalazi kopije traženog sadržaja u svojoj bližoj okolini. Može se koristiti kao osnova za izgradnju raznolikih P2P Internet aplikacija, primjerice aplikacija za globalno dijeljenje datoteka, za globalnu pohranu datoteka i globalno imenovanje računala. Algoritam pretraživanja pronalazi odgovor (datoteku, sadržaj, objekt) logaritamskom funkcijom broja trenutno priključenih čvorova. Svaki čvor je u stanju usmjeravati zahtjeve i pohranjivati objekte koje sustav zatim višestruko umnoži u većem broju diverzificiranih čvorova, i to diverzificiranih u svakom pogledu: od geografske lokacije, vlasništva nad objektima, administrativne pripadnosti i nadležnosti, mrežne povezanosti, zakonskih propisa itd. Pastry protokol [130] koristi dva algoritma za pretraživanje. Jedan algoritam mu služi za pronalaženje ID čvora koji je blizu ciljnog sadržaja, a zatim drugi algoritam za posljednjih nekoliko skokova do cilja. U drugoj fazi dohvata, Pasrty za izračun udaljenosti koristi metriku izračuna razlike numeričkih vrijednosti između ID čvorova. Ipak, čvorovi koji su blizu po jednoj metrici, mogu biti prilično udaljeni po drugoj, tako da može nastati diskontinuitet u određenim vrijednostima ID čvorova, tj. do reduciranja performansi sustava.

Kademlia

Kademlia je P2P protokol temeljen na DHT-u. Protokol [38][131][132] je koncipiran na način da minimizira broj komunikacijskih poruka koje čvorovi moraju razmijeniti kako bi saznali potrebne informacije jedni o drugima. Informacije potrebne za konfiguraciju čvorova šire se automatski kao posljedica pretraživanja. Čvorovi imaju dovoljno podataka i dovoljno su prilagodljivi da mogu usmjeravati upite putovima koji imaju malu latenciju. Upiti su kod Kademlie usporedni i asinkroni kako bi se izbjegli zastoji zbog neodazivanja čvorova. Algoritam kojim svaki čvor prati stanje i postojanje drugih čvorova u mreži, ujedno pruža i otpornost na jednostavne DoS napade. Kademlia koristi način rada poput drugih DHT protokola. Ključevi su 160-bitni, kriptirani. Svaki čvor ima svoj identifikator. Parovi (ključ, vrijednost) pohranjeni su u čvorovima čiji je ID „blizu“ ključa. Pri tome se koristi neki način definiranja blizine. Takav način omogućava svakom čvoru da efikasno locira poslužitelj blizu bilo kojeg

Tedo Vrbanec FOI, 2010. 75 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta ciljnog ključa. Kademlia koristi simetričnu funkciju „isključivo ili“ (XOR), što protokolu omogućava [131] da od rezultata upita dobije dodatne korisne informacije za izračun blizine čvorova, potrebne za učinkovito usmjeravanje upita. Stoga, za razliku od većine drugih protokola koristi jedan algoritam i za lociranje ciljnog čvora i za usmjeravanje upita do njega odnosno željenog sadržaja. ID čvorova su organizirani kao listovi u binarnom stablu [130] (slika 21). Svaki čvor „poznaje“ bar jednog čvora u svakom podstablu. Upit za ID-om se prosljeđuje do podstabla sa najduljim odgovarajućim prefiksom sve dok se ne dođe do odredišnog čvora.

Slika 21: Kademlia - binarno stablo ID č vorova Izvor: -, Kademlia - Wikipedia, the free encyclopedia:, Wikimedia Foundation, Inc., 25. prosinac 2009., , (26. prosinac 2009.)

Kademlia je vrlo popularan protokol. Implementiran je u nizu P2P mreža: Kad, Overnet, RevConnect, BitTorrent, Azureus DHT, sps, Mojito, Maidsafe-DHT, Khashmir, Plan-X, SharkyPy, Entangled i .

Tedo Vrbanec FOI, 2010. 76 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

JXTA

JXTA (Juxtapose1) je peer-to-peer skup protokola2 [133][134] otvorenog kôda čija je specifikacija započeta 2001. godine [135] inicirana istraživačkim projektom u Sun Microsystems koji su vodili Bill Joy i Mike Clary. Oni su željeli olakšati stvaranje i razvoj aplikacija za kolaboraciju istovrsnih ravnopravnih entiteta, odnosno za razvoj sustava istovrsnih entiteta, stvaranjem razvojne platforme. Preduvjet za to je bila izrada i standardizacija novog skupa protokola3. Krajnji cilj projekta je uklanjanje zapreka koje postoje u web prostoru i širenje njegovih granica. JXTA protokoli definiraju se kao skupovi XML poruka koje omogućavaju bilo kojem uređaju4 povezanom na mrežu razmjenu poruka i suradnju neovisno od topologije komunikacijske podmreže [136]. U suštini, JXTA je skup XML temeljenih protokola koji pokrivaju tipične P2P funkcionalnosti [137]. JXTA čvorovi stvaraju virtualnu mrežu gdje se s istovrsnim čvorovima može komunicirati i dijeliti resurse izravno, čak i kada su neki od čvorova i resursi iza vatrozida ili koriste prevođenje mrežnih adrese (NAT5) ili koriste neku drugu prijenosnu mrežu. JXTA daje dodatne P2P protokole i usluge, poput:

• traženje čvorova,

• grupiranje čvorova,

• komunikacija između čvorova i

• praćenje rada čvorova. Stoga je JXTA vrlo koristan okvir za razvoj prototipova i P2P aplikacija. S obzirom na prirodu protokola otvorenog kôda, JXTA se može implementirati u bilo kojem suvremenom programskom jeziku opće namjene.

2.5 SAŽETAK

Tijekom dugog niza godina klijent-server paradigma bila je osnova većine korisničkih aplikacija. U posljednjih nekoliko godina nastala je nova paradigma, sustav istovrsnih entiteta, koja je u početku korištena za aplikacije za dijeljenje i razmjenu datoteka, uglavnom audio i vizualnih sadržaja, ali i programske podrške. Kasnije su pronalaženi i drugi načini njena korištenja, pa je ubrzo korištena primjerice za grid –

1 Juxtapose = postaviti jedno uz drugo (lat.). 2 Skup se sastoji od šest protokola. 3 Istovrsni ravnopravni entiteti su P2P čvorovi. 4 Od mobitela i bežičnih PDA uređaja do računala i poslužitelja. 5 NAT = postupak prevođenja mrežnih (IP) adresa s lokalne mreže (koja koristi privatne IP adrese) prema Internetu i obrnuto, a odvija se u usmjerniku; engl. Network Address Translation.

Tedo Vrbanec FOI, 2010. 77 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta mrežno računalstvo i VoIP - Internet telefoniju. Sustavi istovrsnih entiteta postali su važan dio Interneta, a njihove strukture i usluge koriste milijuni korisnika. Popularnost ovih sustava ubrzavaju akademska istraživanja i povezuju istraživače raznorodnih domena. Nakon što je razvoj P2P sustava poodmakao, danas razlučujemo nekoliko pojmova vezanih uz njih, a koji su u početku razvoja bili jedan pojam (P2P aplikacija odnosno program):

• P2P protokol – algoritamski i u detalje propisan način rada (komunikacije, pohrane, pretrage, ...) sustava.

• P2P aplikacija – programski sustav za određenu platformu (GUI, CLI ili servis) koji u svome radu primjenjuje jedan ili više P2P protokola.

• P2P mreža – računalna mreža na aplikacijskoj razini ISO/OSI modela (prekrivajuća mreža), koja nastaje i održava se od jedne ili više P2P aplikacija koje koriste jedan ili više P2P protokola.

• P2P sustav – distribuirani sustav jedne ili više P2P mreža, aplikacija i protokola. Većina popularnih P2P aplikacija pruža podršku za dijeljenje datoteka i distribuciju sadržaja. Nove se aplikacije učestalo pojavljuju u različitim područjima, vrlo često šireći dotadašnju domenu primjene P2P mreža. S obzirom na dosadašnji razvoj sustava istovrsnih entiteta, moglo bi se definirati1: sustav istovrsnih entiteta je samostalno organiziran i decentraliziran sustav jednakih, autonomnih, istovrsnih, i sukladnih elemenata (čvorova) kojima je zajednički cilj korištenje distribuiranih resursa u umreženoj okolini, bez ili s minimalnim korištenjem središnjih upravljačkih struktura i servisa. Kod izgradnje sustava istovrsnih entiteta koriste se koncepti decentralizacije i samoorganiziranja. To obećava da će paradigma sustava istovrsnih entiteta biti dizajn koji će se sve više koristiti u budućnosti. Stalan rast postotka Internet prometa koji se odvija putem sustava istovrsnih entiteta, to i potvrđuje. Širenje Interneta, povećanje broja korisnika i brzina njihove povezanosti, otvara mogućnosti razvoja potpuno novih vrsta aplikacija temeljenih na Internetu2. Internet aplikacije imaju tri glavna obilježja:

• skalabilnost,

• sigurnost i pouzdanost,

1 Definicija se oslanja na definiciju sustava iz Teorije sustava. 2 Primjeri su Ubuntu One i Dropbox – Internet temeljene aplikacije za sinkronizaciju datoteka između više računala kao i za njihovu pohranu na zaštićeni web prostor. Drugi primjer su Google Dokumenti (engl. Google Docs).

Tedo Vrbanec FOI, 2010. 78 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

• fleksibilnost i kvaliteta usluga. Takva obilježja istovremeno vrlo teško ispunjavaju aplikacije temeljene na konceptu klijent-poslužitelj. Nestrukturirani sustavi istovrsnih entiteta Prva generacija sustava istovrsnih entiteta koristila je nestrukturirani pristup. Strategija rada Napstera, prvog protokola, mreže, aplikacije i sustava temeljila se na središnjim poslužiteljima koji pohranjuju podatke i metapodatke o sadržajima koji su pohranjeni u pojedinim čvorovima. Na upit/zahtjev za nekim sadržajem, Napster poslužitelj odgovara s lokacijom sadržaja, nakon čega se, pokretanjem preuzimanja nekog sadržaja, podaci prenose neposredno između čvorova. Gnutella koristiti tehniku ograničenog preplavljivanja tako da se upit šalje svim čvorovima u sustavu do određene udaljenosti (broja skokova) od početnog čvora. Mreže istovrsnih entiteta nemaju vlastitu komunikacijsku infrastrukturu (podmrežu) koja bi im nudila uslugu prijenosa podataka. U osnovi se koriste TCP i HTTP vezama na kojima izgrađuju svoju strukturu kojoj je naglasak na raspodjelu i distribuciju sadržaja. U standardnim sustavima klijent-poslužitelj, sadržaj je pohranjen u središnjim poslužiteljima koji se o njima i brinu, tj. osiguravaju ih. Sustavi istovrsnih entiteta u svojoj strukturi čvorova i veza pronalaze tražene sadržaje vraćajući čvoru koji je poslao upit za odgovarajućim sadržajem IP adresu čvorova koji zadovoljavaju zadane kriterije pretraživanja odnosno odgovaraju zadanom upitu. Samo preuzimanje sadržaja od čvora koji ima sadržaj do čvora koji sadržaj traži, realizira se neposrednim vezama između tih čvorova. U sustavu klijent-poslužitelj, poslužitelj je zadužen za pružanje usluge ili sadržaja, a klijenti za zahtjeve za uslugom ili sadržajem. U sustavu istovrsnih entiteta, svi čvorovi imaju obje uloge – i davatelja i pružatelja usluga i sadržaja, tj. svi su čvorovi – učesnici u sustavu tzv. serventi. Servent je složenica riječi server i client (poslužitelj i klijent). U prvoj generaciji sustava istovrsnih entiteta, poslužitelj i dalje postoji, kao središnje mjesto indeksiranja i skladištenja pokazivača na sadržaje. Sustav dosta liči na klijent-poslužiteljski sustav. Rekli bismo da takav centralizirani sustav ima obilježja i sustava istovrsnih entiteta i sustava klijent-poslužitelj. Mogu se razlučiti dva načina (moda) rada centraliziranog sustava istovrsnih entiteta prve generacije:

• autentifikacijsko-indeksirajući mod

• prijava čvora na poslužitelj,

• prijenos indeksa sadržaja s čvora na poslužitelj,

Tedo Vrbanec FOI, 2010. 79 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

• pretraživanje odnosno slanje upita od čvora k poslužitelju,

• vraćanje rezultata upita od poslužitelja k čvoru,

• odabir traženog sadržaja;

• razmjena sadržaja

• čvor uspostavlja veze s drugim čvorovima neposrednim povezivanjem dvije IP adrese,

• preuzimanje sadržaja,

• indeksiranje novih sadržaja na čvoru prijemniku i sinkronizacija ažuriranog indeksa s poslužiteljem. Ovako koncipiran sustav drastično smanjuje opterećenje poslužitelja, a koristio ga je Napster. Gnutella 0.4 i FreeNet unijeli su decentralizirani pristup koji je zamijenio centralizirani. Ti se protokoli oslanjanju na preplavljivanje upitima koji sadrže traženi identifikator sadržaja kao način pronalaženja željenog sadržaja u sustavu, čime se upit širi do velikog broja čvorova. Čvorovi koji dijele traženi sadržaj odgovaraju na upit čvoru koji je upit i postavio. Ovakav način pronalaženja željenog sadržaja stvara velik mrežni promet. U nastojanju da se problem umanji, Gnutella 0.6 uvodi hijerarhiju čvorova, tj. uvodi super- čvorove koji pohranjuju podatke o pohranjenim sadržajima dostupnim na povezanim čvorovima, zajedno s njihovom IP adresom. Glavni je zadatak super-čvorova reduciranje broja skokova u procesu pretraživanja, te time smanjenje količine mrežnog prometa. I ovakav sustav smatramo nestrukturiranim, jer ne slijedi nikakvu shemu strukturiranja, a identifikatori sadržaja nisu povezani s IP adresama čvorova koji te sadržaje dijele. Primjeri nestrukturiranih sustava istovrsnih entiteta su Napster, Gnutella, FastTrack, eDonkey i FreeNet. Strukturirani sustavi istovrsnih entiteta Nestrukturirani sustavi nisu bili zadovoljavajućih osobina glede distribuiranog indeksiranja, skalabilnosti, pouzdanosti i otpornosti na greške. Stoga je razvoj sustava istovrsnih entiteta krenuo u smjeru rješavanja tih problema – prema razvoju sustava distribuirane pohrane podataka pretraživog prema sadržaju koji je nazvan „distribuirana tablica raspršivanja“ odnosno engl. Distributed Hash Table, DHT. Korištenjem distribuirane tablice raspršivanja, podaci se sa mreže mogu dohvatiti algoritmom složenosti O(logN), gdje je N trenutni broj čvorova u sustavu, a O funkcija linearne složenosti. Prekrivajuća mreža i broj čvorova u mreži može sada rasti bez utjecaja na efikasnost

Tedo Vrbanec FOI, 2010. 80 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta distribuiranog sustava. To je u suprotnosti s prethodno opisanim nestrukturiranim sustavima čiji algoritmi pretraživanja u najboljem slučaju imaju linearni stupanj složenosti. Četiri najreprezentativnija i najzanimljivija mehanizma usmjeravanja poruka i lociranja podataka u strukturiranim sustavima za distribuciju sadržaja su:

• FreeNet je djelomično strukturiran sustav koji koristi identifikator datoteka i identifikator čvora za izradu procjena gdje je datoteka smještena, te određivanje puta kojim će se prosljeđivati upiti od čvora do čvora.

• Chord je sustav čiji čvorovi održavaju distribuiranu tablicu usmjeravanja u obliku prstena identifikatora prema kome se izgrađuje tablica pokazivača i prema kome se svi čvorovi preslikavaju.

• CAN sustav koristi n-dimenzionalni Kartezijev koordinatni prostor za implementaciju distribuiranih lokacija i tablica usmjeravanja, a svaki je čvor odgovoran za svoje područje u koordinatnom prostoru.

• Tapestry, Pastry i Kademlia se temelje na Plaxton1 mrežnoj strukturi podataka, koja održava pokazivače na čvorove u mreži u stablastoj strukturi identifikatora.

Tablica 7: Sažetak obilježja P2P modela

STRUKTURA NESTRUKTURIRANI STRUKTURIRANI

GENERACIJA 1. generacija 2. generacija 3. generacija 4. generacija

TIP centralizirani decentralizirani hibridni DHT temeljen

OBILJEŽJA ¤ središnji poslužitelj ¤ bilo koji poslužitelj ¤ bilo koji poslužitelj ¤ bilo koji poslužitelj je nositelj usluga se može ukloniti bez se može ukloniti bez se može ukloniti bez ¤ poslužitelj ima gubitka gubitka gubitka ulogu baze podataka funkcionalnosti funkcionalnosti funkcionalnosti ¤ nema središnjeg ¤ dinamični središnji ¤ nema središnjih entiteta entiteti entiteta

PRIMJER Napster Gnutella JXTA Chord

Prema Tangu i dr. [138], količina sadržaja na Internetu duplicira se svake godine. Sustavi istovrsnih entiteta postaju sve popularniji zbog svoje skalabilnosti, ali i zbog

1 U Plaxton mrežnoj strukturi, svaki čvor može preuzeti tri uloge: ulogu poslužitelja (čvor u kome su sadržaji pohranjeni), usmjerivača (čvor koji usmjerava poruke) i klijenta (inicijator zahtjeva) [126].

Tedo Vrbanec FOI, 2010. 81 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta drugih pozitivnih obilježja: otpornost na greške, samo-organizirajući su sustavi, s određenim stupnjem decentralizacije. Ipak, postojeći sustavi istovrsnih entiteta ako su skalabilni tada ne garantiraju pronalaženje sadržaja. Njihov algoritam pronalaženja sadržaja u mreži sustava istovrsnih entiteta temelji se na jednoj od četiri tehnika:

• središnje indeksiranje,

• preplavljivanje upitima,

• preplavljivanje indeksima i

• heuristika. Sustavi koji koriste središnje indeksiranje poput Napstera pate od ranjivosti sustava na ispade središnjih poslužitelja te potrebnih performansi središnjih poslužitelja. Sustavi koji koriste preplavljivanje upitima poput Gnutelle šalju upite ili indekse svim čvorovima u sustavu, zagušujući mrežu i obilno troše računalne resurse. Ukoliko pak imaju implementirano ograničeno preplavljivanje upitima, tada ne garantiraju pronalaženje rijetkih sadržaja u sustavu iako se oni i nalaze u njemu. Sustavi koji pri pretraživanju koriste heuristiku pokušavaju poboljšati performanse sustava na način da upite usmjeravaju u jedan ograničeni segment sustava te tako također ne garantiraju pronalaženje rijetkih sadržaja. Sustavi koji koriste neki način rangiranja sadržaja u sustavu te vektorsko preslikavanje dokumenata i upita nisu dobili na popularnosti i značaju, a većinom su samo teorijski obrađeni [138].

Tedo Vrbanec FOI, 2010. 82 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

3 KRITERIJSKA ANALIZA P2P MREŽA

Mreže istovrsnih entiteta predstavljaju prekrivajuću mrežu za Internet koji pak za njih predstavlja komunikacijsku podmrežu. Razlikujemo dvije klase: strukturirane i nestrukturirane. Kod strukturiranih je mrežna topologija strogo kontrolirana, a sadržaji koji se u mreži nalaze nisu pohranjeni na slučajan način, već naprotiv, na točno određena mjesta/spremišta kako bi se kasniji upiti/pretrage izvršili što efikasnije. Strukturirani P2P sustavi koriste distribuiranu tablicu raspršivanja (DHT) kao supstrat u kome su smještene informacije o tome kod kojih se čvorova točno nalaze traženi objekti ili podaci. Kao što je detaljnije izloženo u poglavlju 2.3.3.2 Distribuirana tablica raspršivanja, str. 32, DHT se nalazi između Interneta kao komunikacijske podmreže i prekrivajuće mreže P2P aplikacije (slika 9, str. 33). Kada se neki čvor prijavi u mrežu istovrsnih entiteta, dodjeljuje mu se jedinstven identifikator (čvora). Podatkovnim objektima se također dodjeljuju jedinstveni identifikatori – ključevi. Prekrivajuća mreža strukturiranih sustava istovrsnih entiteta podržava skalabilnu pohranu i dohvat parova identifikatora. Svaki čvor održava malu tablicu usmjeravanja koja se sastoji od jedinstvenih identifikatora i IP adresa susjednih čvorova. Upiti ili preusmjeravanje poruka prosljeđuju se prema čvorovima na progresivan način tako da se prosljeđuju čvoru čiji je jedinstveni mrežni identifikator što bliži traženom. Sustavi koji se razlikuju po distribuiranim tablicama pridruživanja imaju različite sheme organizacije podatkovnih objekata, njihovih ključeva i strategija usmjeravanja. U teoriji, sustavi koji se temelje na DHT-u mogu garantirati da će se svaki podatkovni objekt moći locirati u (prosječno malom) broju koraka reda veličine O(logN) do O(log2N) gdje je N broj čvorova u sustavu, a O neka ograničena ne-eksponencijalna funkcija [39] (ranije objašnjena funkcija „veliko O“). Put između dva čvora kroz komunikacijsku podmrežu ispod mreže istovrsnih entiteta može značajno odstupati od puta kroz DHT temeljenu prekrivajuću mrežu ponad nje. Stoga u DHT temeljenim mrežama istovrsnih entiteta može biti velika latencija što pak može nepovoljno utjecati na performanse aplikacija koje djeluju iznad njih. Centralizirani sustavi istovrsnih entiteta za dijeljenje datoteka poput Napstera imaju delikatno obilježje samoproširivosti (skalabilnosti):

• S jedne strane što više čvorova uđe u sustav to je više dodane agregirane mogućnosti preuzimanja datoteka. To je kod Napstera omogućeno tako što se središnje pretraživanje temelji na popisu datoteka koje osigurava svaki čvor za sebe. Stoga za središnje pretraživanje nije potreban veliki kapacitet

Tedo Vrbanec FOI, 2010. 83 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

komunikacijskog kanala. Ipak, upravo zbog takvog mehanizma, sustav ima središnju točku ispada.

• S druge strane, poslužitelj ili grozd poslužitelja mora biti predimenzioniran, kako bi bio u stanju apsorbirati nagla povećanja broja indeksiranja i upita, a koja, ukoliko na njih nije u stanju odgovoriti, korisniku daju osjećaj zagušenja sustava ili njegove sporosti. Gnutella je nastala inspirirana kako funkcionalnošću Napstera tako i očitim slabostima takvog centraliziranog sustava. Stoga je Gnutella decentralizirani sustav koji distribuira i funkcije pretraživanja i preuzimanja, uspostavom prekrivajuće mreže čvorova. Dok je Napster dao prvu ideju distribuirane razmjene datoteka gdje se datoteke ne preuzimaju sa središnjeg poslužitelja već čvorovi usporedno i neposredno preuzimaju istu datoteku od više čvorova, Gnutella je prvi sustav koji koristi nestrukturiranu prekrivajuću mrežu istovrsnih entiteta. Nestrukturirani P2P sustav je sastavljen od čvorova koji se u mrežu pridružuju prema nekim slabim pravilima, na ad-hoc način, bez ikakvog prethodnog znanja o mrežnoj topologiji. Mreža koristi preplavljivanje kao mehanizam kojim šalje upite kroz prekrivajuću mrežu, ali s ograničenim rasponom, odnosno brojem koraka/skokova. Kada čvor primi takav upit, povratno šalje popis svih sadržaja koji odgovaraju kriterijima upita čvoru koji je upit uputio. Tehnike pretraživanja temeljene na preplavljivanju efikasne su za pronalaženje sadržaja koji su vrlo česti i otporne su na (od)spajanje čvorova u (iz) sustava, ali su loše za pronalaženje rijetkih sadržaja. Nestrukturirane se mreže istovrsnih entiteta suočavaju s problemom preopterećenosti čvorova kada sustav prima velik broj agregiranih upita ili kada naglo raste, pa zaključujemo da taj pristup nije skalabilan. Iako strukturirane mreže istovrsnih entiteta mogu efikasno locirati rijetke sadržaje, one sadrže prekobrojne kopije popularnog sadržaja u usporedbi sa nestrukturiranim mrežama istovrsnih entiteta, zbog čega se potonje danas češće koriste.

3.1 CILJEVI KORIŠTENJA P2P MREŽA

U ovom će se odlomku identificirati ciljevi koji se žele postići korištenjem sustava istovrsnih entiteta i parametri koji opisuju mreže istovrsnih entiteta, kao preduvjeta njihove komparativne analize. Svrha svakog računalnog sustava je zadovoljenje potreba korisnika [3]. Svrha se postiže realizacijom ciljeva. Korisnici će odabrati sustav istovrsnih entiteta kada žele postići jedan od sljedećih ciljeva (ili više njih):

Tedo Vrbanec FOI, 2010. 84 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

• Smanjenje ili dijeljenje troškova Centralizirani sustavi sadrže poslužitelje koji opslužuju mnoštvo klijenata. Oni opterećuju vlasnika potrebnom računalnom snagom, količinom spremišta, troškovima instalacije, licenciranja i održavanja operacijskog sustava i druge programske podrške, cijenom zakupa odgovarajućeg kapaciteta komunikacijskog kanala (veze prema Internetu) i sl. troškovima. Kada su ti troškovi ekonomski neisplativi, P2P arhitektura može raspodijeliti troškove na sve čvorove.

• Agregiranje resursa i međudjelovanja Decentralizirani pristup agregira resurse. Svaki čvor u sustavu istovrsnih entiteta ima određene resurse: računalna snaga, količina spremišta i brzina povezanosti na Internet. Postoje problemska područja koja su gladna tih resursa, poput računalno intenzivnih primjena ili dijeljenja datoteka kojima su tradicionalni računalni i komunikacijski sustavi preskupi ili nedostatni.

• Poboljšanje skalabilnosti i pouzdanosti Nedostatak središnje kontrole čvorova potenciralo je važnost pronalaženja algoritama i inovacija postojećih algoritama koji se tiču pronalaženja sadržaja u distribuiranim sustavima. Obilježje skalabilnosti može se detaljizirati komponentama poput: (a) kolikom se broju čvorova može pristupiti od jednog čvora, (b) koliki je maksimalni broj čvorova u sustavu, (c) koliki je maksimalni broj korisnika u sustavu, (d) s kojom količinom spremišta za pohranu može sustav raditi, te (e) kojim kapacitetom spremišta ili količinom dijeljenog sadržaja (datoteka) čvor mora participirati u sustavu. Pouzdanost se odnosi na (a) prosječno vrijeme između ispada sustava ili mreže, (b) prosječno trajanje ispada, (c) učestalost odspajanja čvorova te (d) dostupnost resursa.

• Veća autonomija Korisnici distribuiranih sustava često se ne žele pouzdati u nekog davatelja usluga. Naprotiv, žele imati svoje datoteke i radne podatke dostupne na svome radnom stolu, odnosno na svojem računalu. Razlog tome mogu biti i ograničenja glede autorskih prava i licenci, pa su pojedinci koji žele dijeliti takve problematične sadržaje, puno manje uočljivi ako ih dijele od kuće, nego da ih postave na javne poslužitelje.

Tedo Vrbanec FOI, 2010. 85 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

• Anonimnost i privatnost Korisnici u pravilu ne žele da neki davatelj usluga zna za njihovu uključenost u sustav istovrsnih entiteta, posebno ako je riječ o sustavu za distribuciju datotečnih sadržaja. Kod središnjeg poslužitelja, ta je anonimnost teško moguća, jer čak i ako nema autentifikacije korisnika, središnji poslužitelj uglavnom prati i bilježi IP adrese korisnika koji postavljaju sadržaje. To je posebno vidljivo kod sustava poput FreeNeta, gdje je na račun brzine rada sustava implementiran visok stupanj sigurnosti, čak i u smislu nevidljivosti korisnika za bilo koga osim za onoga koga odabere kao pouzdanog korisnika - prijatelja (tzv. DarkNet način rada). Shema proslijeđivanja komunikacije je takva da ju je teško, praktično gotovo nemoguće pratiti.

• Dinamičnost Sustavi istovrsnih entiteta predmnijevaju da je računalna okolina vrlo dinamična. Čvorovi koji imaju određene funkcije, poput izvršenja dijela kalkulacija, neprestano ulaze i izlaze u sustav. Sustavi istovrsnih entiteta u pravilu se vrlo dobro nose s populacijom nestalnih čvorova.

• Omogućavanje ad-hoc komunikacije i suradnje Podrška ad-hoc1 komunikaciji i suradnji vezana je uz dinamičnost. Ad-hoc sredina označava da se čvorovi povezuju i odspajaju ovisno od njihove fizičke lociranosti (češće) ili trenutnih aktivnosti i interesa (rjeđe). Ponovo, tako „nestabilni čvorovi“ prirodno se bolje uklapaju u sustave istovrsnih entiteta, s obzirom da oni stvaraju svoje vlastite logičke prekrivajuće mreže.

3.2 PARAMETRI OPISA P2P MREŽA

Usporedba mreža istovrsnih entiteta mora se učiniti koristeći se nekim parametrima koji ih opisuju i na neki način međusobno diferenciraju (slika 22, str. 88): 1. Struktura P2P mreža može biti strukturirana ili nestrukturirana. 2. Decentralizacija Nestrukturirani sustavi mogu biti centralizirani, decentralizirani ili hibridni, a strukturirani su raspršeni, odnosno koriste DHT.

1 Ad-hoc komunikacija definira se [3] kao „sustav koji omogućava odvijanje komunikacije bez ikakve predefinirane infrastrukture, osim one za računala koja komuniciraju. Ta računala formiraju ad-hoc mrežu.

Tedo Vrbanec FOI, 2010. 86 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

3. Arhitektura Opis arhitekture prekrivajuće P2P mreže: poslužitelji, klijenti, super-čvorovi, dubina hijerarhijske strukture. 4. Protokoli pretraživanja i usmjeravanja Način na koji se lociraju objekti u P2P mreži, performanse i efikasnost protokola pretraživanja i usmjeravanja. 5. Parametri sustava Parametri sustava bitni su za operacije prekrivajuće P2P mreže: N – broj čvorova u mreži, d – broj dimenzija mreže, B = 2b – baza prostora identifikatora. 6. Performanse usmjeravanja Od sustava dozvoljeno vrijeme potrebno za obavljanje operacija, poput objavljivanja, pretraživanja i dohvaćanja dokumenata. 7. Pouzdanost i otpornost na greške Opisuje što se događa u slučaju greške u radu sustava. Uključuje sposobnost P2P mreže na samo-oporavak nakon ispada rada dijelova ili cjeline i stabilnost sustava u slučaju grešaka/zastoja u radu ili u okolnostima promjenljivosti i nestabilnosti čvorova. 8. Skalabilnost Opisuje koliko je mreža osjetljiva (u smislu efikasnosti, protočnosti i zastoja) na veliko i/ili brzo povećanje i smanjenje broja čvorova, dakle, ponašanje prekrivajuće P2P mreže spram nestabilnosti čvorova i mogućnosti održavanja performansi sustava nezavisnima od broja čvorova ili broja dokumenata prisutnih u mreži. Poželjno je da dramatičan porast broja čvorova ili dokumenata ima minimalan utjecaj na performanse sustava ili dostupnost dokumenata. 9. Anonimnost Mogućnost mreže da čvorovi/korisnici zadrže anonimnost, ukoliko to žele. 10. Sigurnost korisnika Sigurnosne prijetnje: virusi, crvi, trojanci, špijunski i općenito maligni kôd svih vrsta. Sigurnosni napadi i obmane: napadi uskraćivanjem usluga (engl Denial of Service, DoS), presretanje komunikacije (engl. Man-in-the-middle), mreže botova (engl. Botnet), lažiranje IP adresa (engl. IP Spoofing). Kontrola pristupa (korisnik se prijavljuje na sustav – identifikacija, dokazuje da je taj za koga se predstavlja – autentifikacija, te mu se od strane sustava dodjeljuju određena prava – autorizacija).

Tedo Vrbanec FOI, 2010. 87 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

11. Sigurnost podataka Obilježje je vezano uz očuvanje točnosti i potpunosti, raspoloživosti, trajnosti, replikacije i migracije sadržaja. Da bi se sačuvao integritet podataka, neovlašteni entiteti (korisnici, čvorovi, klijenti) ne mogu biti u mogućnosti mijenjati podatke, a učesnici u razmjeni ne mogu na zahtjev za jednom datotekom poslati neku drugu (krivotvorenu). Autorizirani korisnici moraju imati pristup podacima i sve što je vezano uz njihovo korištenje kada god im to zatreba. Ipak, podaci mogu i moraju biti dostupni samo onima koji su ovlašteni. Potrebno je osigurati kontrolu nad načinom prikupljanja, korištenja i ažuriranja podataka. 12. Sigurnost komunikacije Kriptirana komunikacija, privatni kanali, povjerljivost komunikacije. 13. Obračunska politika Osiguravanje da korisnici nude i troše resurse na fer i izbalansiran način: količina i omjer preuzimanja i dijeljenja, pravednost sustava, reputacija korisnika i sadržaja.

Slika 22: Parametri opisa P2P mreža

Mreže istovrsnih entiteta za distribuciju sadržaja nastaju programskom implementacijom P2P protokola ukratko opisanih u poglavlju 2.4 P2P protokoli i aplikacije (str. 49). Obilježja najraširenijih mreža istovrsnih entiteta za dijeljenje datoteka i distribuciju sadržaja, u sažetom obliku, prikazana su usporednim tablicama koje slijede. Treba napomenuti da nas u ovoj usporedbi ne zanimaju mreže neimplementiranih

Tedo Vrbanec FOI, 2010. 88 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta protokola ili onih koji se više ne koriste, ili (još) ne postoje. Nema smisla navoditi obilježja mreža čiji je rad obustavljen na bilo koji način, dakle povijesne i za nastavak rada neprimjenjive podatke. Zanimaju nas samo funkcionalne P2P mreže za dijeljenje sadržaja, tj. one koje rade (2009.-2010.): BitTorrent, Direct Connect, Donkey, FastTrack, Gnutella, Gnutella2, Kademlia, FreeNet i OpenFT. Nije moguće (dovoljno) dobro proanalizirati rad mreže koja nije zaživjela, koja postoji samo na papiru, ili, eventualno u obliku mrtvih protokola i algoritama. Takvi su protokoli, primjerice, Content Addressable Network (CAN), Viceroy, Chord i mnogi drugi, za koje (trenutno) ne postoje mreže koje bi ih implementirale. U nastavku, u tablicama su usporedno prikazana obilježja P2P mreža za distribuciju sadržaja.

Tablica 8: Usporedba struktura i stupnja decentralizacije P2P mreža

P2P mreža Struktura Decentralizacija FreeNet slabo strukturirana1 koristi DHT, decentralizirana Gnutella nestrukturirana decentralizirana Gnutella2 nestrukturirana hibridna FastTrack nestrukturirana hibridna nestrukturirana/ BitTorrent centralizirana; tracker prati čvorove strukturirana EDonkey nestrukturirana hibridna; dvoslojna mreža klijenata i poslužitelja Direct centralizirana; čvorovi i poslužitelji (engl. hub); hubovi međusobno nestrukturirana Connect nisu protokolom povezani, ali neki klijenti imaju tu mogućnost OpenFT nestrukturirana hibridna; dvoslojna mreža tri tipa čvorova: user, search i index Kad strukturirana DHT, decentralizirana

1 Neki autori svrstavaju FreeNet u nestrukturirane sustave istovrsnih entiteta. Naime, prema svojoj prirodi, načinu djelovanja i ciljevima, FreeNet je nestrukturirani sustav. Međutim, korištenje distribuirane tablice raspršivanja je glavno obilježje strukturiranih sustava; stoga se FreeNet jednako osnovano može svrstati u strukturirane sustave, vrlo slabe strukture. Matematičkim rječnikom bi se reklo da FreeNet „nije nestrukturirani“ sustav.

Tedo Vrbanec FOI, 2010. 89 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 9: Usporedba arhitektura P2P mreža

P2P mreža Arhitektura FreeNet distribuirani serventi, bez hijerarhije Gnutella serventi Gnutella2 čvorovi i super-čvorovi FastTrack čvorovi i super-čvorovi čvorovi spojeni na središnji poslužitelj (tracker); preuzimanje neposredno između BitTorrent klijenata uz kontrolu poslužitelja EDonkey poslužitelji indeksiraju datoteke klijenata; preuzimanje neposredno između klijenata čvorovi (klijenti) se spajaju na poslužitelj (hub); hubovi sadrže popis čvorova koji su na Direct Connect njih spojeni, kao i popis datoteka koje ti čvorovi dijele; preuzimanje se vrši izravno od drugih klijenata čvorovi user se spajajaju na tri čvora search koji indeksiraju njihove sadržaje, a mrežnu OpenFT strukturu i popis čvorova search održavaju čvorovi index distribuirani serventi, bez hijerarhije; čvorovi organizirani kao listovi u binarnom stablu; Kad koristi XOR f-ju za određivanje „udaljenosti“ između čvorova

Tablica 10: Usporedba protokola pretraživanja i usmjeravanja P2P mreža

P2P mreža Protokoli pretraživanja i usmjeravanja za identifikaciju i pretraživanje sadržaja koristi ključeve i nizove opisnih riječi, FreeNet usmjeravanje Gnutella upiti preplavljivanja, nema usmjeravanja Gnutella 2 upiti preplavljivanja, nema usmjeravanja upiti prema super-čvorovima koji indeksiraju sadržaje čvorova i prosljeđuju upite FastTrack drugim super-čvorovima BitTorrent tracker – središnji (web) poslužitelj EDonkey upiti klijenata prema poslužiteljima hubovi osiguravaju informacije o klijentima te osiguravaju mogućnost pretraživanja i Direct Connect razmjene poruka; usmjeravanje protokolom nije definirano upiti user čvorova prema search čvorovima, a search prosljeđuje drugim search OpenFT čvorovima ključevi su 160-bitni, kriptirani; svaki čvor ima svoj ID; parovi (ključ, vrijednost) Kad pohranjeni su u čvorovima čiji je ID „blizu“ ključa; pretraživanje na temelju podudaranja u ključu i identifikatoru čvora

Tedo Vrbanec FOI, 2010. 90 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 11: Usporedba parametara sustava i performansi usmjeravanja P2P mreža

P2P mreža Parametri sustava Performanse usmjeravanja korištenje ključa garantira lociranje datoteka, FreeNet nema sve dok ne istekne HTL ograničenje, algoritam prilagodljiv nestalnoj mrežnoj topologiji Gnutella nema nema garancije lociranja datoteka super-čvorovi unaprijedili vjerojatnost Gnutella2 nema pronalaženja; dobre performanse za popularne datoteke nema garancije, ali je visoka vjerojatnost FastTrack nema pronalaženja sadržaja putem super-čvorova; dobre performanse za popularne datoteke garantirano lociranje sadržaja i garantirane BitTorrent .torrent datoteka performanse za popularne sadržaje garantirano lociranje sadržaja i garantirane EDonkey nema performanse za popularne sadržaje broj čvorova spojenih na hub i broj garantirano lociranje sadržaja i garantirane Direct Connect slotova; nisu definirani protokolom već performanse što ovisi o statusu (aktivni ili ih određuje administrator huba pasivni klijenti1) dijete (čvor user) slučajnim odabirom nema garancije, ali je visoka vjerojatnost OpenFT bira tri roditelja (čvor search); roditelj pronalaženja sadržaja putem search čvorova; može imati do 500 djece dobre performanse za popularne datoteke N = broj čvorova u mreži; b = broj bitova Kad O(logbN)+c, c= mala konstanta za ID čvorova (B=2b)

1 Detaljnije u poglavlju Direct Connect na str. 68.

Tedo Vrbanec FOI, 2010. 91 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 12: Usporedba pouzdanosti i otpornosti na greške te skalabilnosti P2P mreža

P2P mreža Pouzdanost i otpornost na greške Skalabilnost nema hijerarhije, pa tako ni središnjih točaka skalabilna, algoritam složenosti FreeNet ispada O(log2n) oscilacije performansi; čvor prima višestruke Gnutella kopije od čvorova koji posjeduju datoteke; slabo skalabilna dozvoljeno je ponavljanje upita oscilacije performansi; čvor prima višestruke Gnutella2 kopije od čvorova koji posjeduju datoteke; skalabilna dozvoljeno je ponavljanje upita čvorovi se preraspoređuju između super- FastTrack skalabilna (super-čvorovi) čvorova tracker prati čvorove i dostupnost dijelova ograničena; skalabilnost ovisi o snazi BitTorrent datoteka; sprečava zagušenje izmjenom trackera i njegove Internet veze problematičnih čvorova svakih deset sekundi prespajanje na drugi poslužitelj; ne prihvaća EDonkey dobra višestruke odgovore od istih čvorova nije zadovoljavajuće skalabilna; Direct Connect prebacivanje čvora s jednog na drugi hub neusmjereno pretraživanje (engl. broadcasting) čvorovi user se preraspoređuju između vrlo dobra; čvorovi index brinu o OpenFT čvorova search mrežnoj strukturi greške u radu čvorova ne onesposobljavaju Kad mrežu; podaci su replicirani u mnoštvu skalabilan čvorova

Tablica 13: Usporedba anonimnosti i politike obrač unavanja P2P mreža P2P mreža Anonimnost Politika obračunavanja izvrsna, u tri razine po odabiru korisnika: javna, FreeNet ne postoji poluprivatna i nevidljiva mreža Gnutella nema ne postoji; prepušteno aplikaciji FastTrack nema ne postoji; prepušteno aplikaciji definirana od vlasnika trackera; BitTorrent nema omjer poslanog i primljenog; trajanje dijeljenja EDonkey nema nema korisnici sami biraju i mijenjaju identifikator; Direct Connect nema anonimnost čvorova i korisnika OpenFT nema nema Kad nema nema

Tedo Vrbanec FOI, 2010. 92 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 14: Usporedba obilježja sigurnosti P2P mreža

P2P mreža Sigurnost korisnika Sigurnost podataka Sigurnost komunikacije ostaju i nakon odspajanja, replikacija prema podesiva, od nesigurne popularnosti, prividno (dohvat podataka) do slaba; Man In the Middle napad, FreeNet neobrisivi, nestaju relativno sigurne (javni i trojanci, DoS ukoliko nema interesa, tajni ključevi) kod objave potpisivanje hash i ažuriranja funkcijom podaci se prenose slaba: nema sigurnosnih slaba; maliciozni sadržaji, širenje neposredno (HTTP), mehanizama osim Gnutella virusa, napadi upitima i dostupnost datoteka nastavljanja prekinutog preplavljivanjem, DoS ovisna o čvorovima preuzimanja slaba: nema sigurnosnih napadi preplavljivanjem, virusi, mehanizama osim FastTrack maliciozni i lažni sadržaj spyware, typeware nastavljanja prekinutog preuzimanja prilična sigurnost dobra: mogućnost umjerena; tracker prati i upravlja; dostupnosti i korištenja enkripcije BitTorrent otežano lažno predstavljanje, autentičnosti sadržaja (HTTPS protokol); lažiranje IP adresa i portova zbog središnje kontrole i mogućnost nastavka sustava reputacije prekinutog preuzimanja EDonkey virusi, crvi, maliciozni i lažni sadržaj nema podaci se prenose slaba: nema sigurnosnih neposredno (HTTP), mehanizama osim Direct Connect umjerena; maliciozni sadržaji dostupnost datoteka nastavljanja prekinutog ovisna o čvorovima preuzimanja slaba: nema sigurnosnih napadi preplavljivanjem, virusi, mehanizama osim OpenFT maliciozni i lažni sadržaj spyware nije uključen u klijent nastavljanja prekinutog preuzimanja slaba; Man In the Middle napad, podaci su replicirani kroz Kad nema trojanci mrežu

Tedo Vrbanec FOI, 2010. 93 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

3.3 EVALUACIJA ZNAČAJA PARAMETARA P2P MREŽA

Trenutno je u uporabi devet mreža istovrsnih entiteta za dijeljenje datoteka. Uspoređujući njihove parametre, možemo donositi određene zaključke, prikazane u nastavku. Struktura Većina današnjih P2P mreža, njih šest odnosno 67%, je nestrukturirano (slika 23). To su: Gnutella, Gnutella2, FastTrack, Edonkey, Direct Connect i OpenFT.

strukturirane mreže 2 22%

oba načina rada nestrukturirane mreže 1 6 11% 67%

Slika 23: Odnos broja strukturiranih i nestrukturiranih mreža

BitTorrent je u mogućnosti raditi i na strukturirani i na nestrukturirani način. Kod strukturiranog se načina kao središnji poslužitelji koriste tzv. torrent trackeri. Oni prvenstveno služe kao osnova svojevrsnim Internet zajednicama koje se samofinanciraju donacijama, a vode ih aktivniji članovi ili utemeljitelji. Postoje otvoreni i zatvoreni trackeri, već prema tome može li se korisnički račun kod njih dobiti pozivnicom ili registracijom preko web stranica. S obzirom da za njih postoji određeni financijski sustav i pojedinačni interesi, trackerima je u interesu držati nadzor nad korisnicima, prvenstveno drže li se korisnici definiranih pravila trackera1. Ipak, gašenjem trackera, obično zbog

1 Pravila mogu biti prihvatljiv omjer predanih i preuzetih sadržaja, vrijeme njihova držanja kao djeljive i sl.

Tedo Vrbanec FOI, 2010. 94 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta sudskih sporova ili zbog njihove prijetnje, a zbog kršenja autorskih prava, sve više takvih zajednica prelazi na uporabu DHT-a. Na taj način izbjegavaju smještanje čak i inicijalne datoteke za početak preuzimanja, .torrent datoteke, na svojem web poslužitelju. Umjesto nje, na web stranicama se objavljuju tzv. „magnet linkovi“, tj. hash funkcijom stvoren potpis torrent datoteke koja se preuzima s DHT prekrivajuće distribuirane mreže od njenih korisnika. Svježi primjer toga je , jedno od najpopularnijih mjesta za objavu torrent dijeljenih sadržaja. Dvije preostale mreže su strukturirane: Kad i FreeNet, pri čemu je potonja slabo strukturirana. Iako postoje mnogi DHT protokoli, odnosno njihovi teorijski koncepti, koji su objavljeni u akademskim krugovima u obliku teza i znanstvenih radova, u stvarnom svijetu razvijatelja Internet aplikacija nisu implementirani, a u svijetu internauta oni koji i imaju aplikativnu realizaciju još nisu dobili kritičnu masu korisnika koja bi ih kvalificirala kao mreže koje se koriste. Decentralizacija Stupanj decentralizacije današnjih mreža opisuje dijagram na slici 24. Iz nje se vidi da se danas koriste svi oblici P2P mreža. Ovako prikazani „omjeri snaga“ relativiziraju apsolutnu brojčanu nadmoć nestrukturiranih mreža. Unutar njih, najmanje predstavnika, samo jednog, ima decentralizirana forma, a najviše je hibridnih, njih čak četiri.

Slika 24: Stupanj decentralizacije suvremenih P2P mreža

Tedo Vrbanec FOI, 2010. 95 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Arhitektura Parametri arhitekture raspodijelili su se pravilno (slika 25): po tri predstavnika za tri arhitekture: serventi bez hijerarhije (FreeNet, Gnutella i Kad), čvorovi i super-čvorovi u dvije ili tri razine (Gnutella2, FastTrack i OpenFT) te klijenti i poslužitelji (BitTorrent, Edonkey i Direct Connect). Ukoliko BitTorent radi u DHT načinu rada (bez trackera, odnosno engl. trackerless), tada on ulazi u prvu skupinu. Ipak, trenutno je njegova prevladavajuća uporaba arhitekturom klijenata i poslužitelja. Strukturirane (DHT) mreže i nestrukturirane decentralizirane mreže zajedno obilježava visoki stupanj decentralizacije koji se očituje u punoj ravnopravnosti čvorova, (serventi), koji imaju i poslužiteljske i klijentske funkcije i uloge.

serventi bez hijerarhije čvorovi i super-čvorovi 3 3 33% 33%

klijenti i poslužitelji 3 33%

Slika 25: Arhitektura današnjih P2P mreža

Protokoli pretraživanja i usmjeravanja Parametri grupirano prikazani na slici 26, (str. 97), logično su povezani. Strukturirane mreže koje koriste DHT, za pretraživanje koriste ključeve preko kojih dohvaćaju vrijednost, odnosno sadržaje. To su FreeNet, Kad i BitTorrent. Za usmjeravanje koriste razrađene algoritme.

Tedo Vrbanec FOI, 2010. 96 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

ključevi 3 33% opisno 4 44%

preplavljivanje 2 22%

Slika 26: Razdioba protokola pretraživanja suvremenih P2P mreža

Nestrukturirana Gnutella u obje verzije, (centralizirana Gnutella i hibridna Gnutella2), koristi preplavljivanje. Nemaju razrađeno usmjeravanje upita kroz mrežu, već se oni „prelijevaju“ s čvora na čvor (Gnutella) ili s čvora na super-čvor pa dalje na druge super-čvorove (Gnutella2), sve dok se ne vrate povratne informacije (Gnutella, Gnutella2) ili ne istekne definirani broj preljeva (Gnutella2) te se prekidaju daljnji upiti. Preostale nestrukturirane mreže: hibridne FastTrack, Edonkey i OpenFT te centralizirana Direct Connect koriste upite ključnim riječima koje u hijerarhijskoj strukturi upućuju prema nadređenim čvorovima koji pak indeksiraju sadržaje podređenih čvorova te ili daju rezultate pretraživanja ako se nalaze u njihovoj domeni nadzora ili upite proslijeđuju drugim super-čvorovima / poslužiteljima / hubovima / search čvorovima ukoliko sadržaje za koje su dobili upit nemaju u svojoj domeni nadzora. Parametri sustava Postojeće P2P mreže za svoj rad većinom (5 od 9, odnosno 56%) nemaju definirane parametre. To su FreeNet, Gnutella, Gnutella2, FastTrack i Edonkey. Ovdje bismo u istu skupinu, uvjetno, mogli uključiti i BitTorrent koji definira samo potrebu posjedovanja odgovarajuće torrent datoteke, što i nije neki sistemski parametar u pravom smislu te riječi. U tom slučaju 6/9 odnosno 67% postojećih mreža ne koristi parametre. To se poklapa sa većim stupnjem decentralizacije. Centraliziranije mreže imaju veću sklonost

Tedo Vrbanec FOI, 2010. 97 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta definiranja parametara, jer su prirodno manje skalabilne od decentraliziranih sustava koji moraju imati definiran takav algoritam koji im dozvoljava određenu skalabilnost. Primjeri mogućih parametara slijede. Direct Connect definira broj čvorova spojenih na hub i broj slotova. Oni nisu definirani protokolom već ih određuje administrator huba. OpenFT mreža čvorove grupira u djecu i roditelje. Dijete (čvor user) slučajnim odabirom bira tri roditelja (čvorove search). Roditelj može imati do 500 djece. Kad definira broj N kao broj čvorova u mreži, broj b kao broj bitova za generiranje prostora identifikatora čvorova veličine B (B=2b). Performanse lociranja i usmjeravanja Ovaj parametar pokazuje da se u različitim oblicima strukturiranja i stupnjevima decentralizacije mogu ostvariti i vrhunske i slabe performanse (slika 27), što upućuje da ti parametri nemaju vidljivu uzročno-posljedičnu vezu. Iz grafikona izdvojimo da Gnutella ima loše rezultate i kod lociranja i kod usmjeravanja. Gnutella2 osrednje, a FreeNet, očekivano s obzirom na zahtjeve anonimnosti i redundantnosti (replikacije) sadržaja te zahtjev da sadržaj ostane na mreži i kad čvora koji je sadržaj objavio više nema, uz garantirano lociranje sadržaja ima i loše performanse usmjeravanja.

Legenda: Brojevi 0, 1 i 2 na Y-osi imaju sljedeće značenje: • za garanciju lociranja (pod uvjetom da sadržaja zaista ima negdje na P2P mreži): 0 – nema garancije lociranja sadržaja, 1 – visoka vjerojatnost lociranja sadržaja i 2 – garantirano lociranje sadržaja • za performanse usmjeravanja: 0 – loše performanse usmjeravanja, 1 – dobre performanse usmjeravanja i 2 – izvrsne performanse usmjeravanja.

Slika 27: Razine garancije lociranja i performanse usmjeravanja P2P mreža

Tedo Vrbanec FOI, 2010. 98 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Pouzdanost i otpornost na greške Većina postojećih P2P mreža (slika 28), problematiku oporavka od grešaka koje se neminovno moraju događati u radu mreže i čvorova, rješava na način da ili čvor koji utvrdi grešku u radu promijeni super-čvora, poslužitelja, huba ili sl. nadređenog čvora ili nadređeni čvor otpusti problematični čvor.

Slika 28: Modeli rješavanja pitanja pouzdanosti i otpornosti na greške u radu P2P mreža

Bez obzira tko koga otpusti, u oba se slučaja postojeće veze prekidaju, nove veze se stvaraju te se tako sustav rekonfigurira u radno stanje. Drugi sustavi koriste višestruke kopije sadržaja, pa ukoliko je neka od kopija nedostupna, tu je još uvijek dovoljno drugih. Konačno, FreeNet koristi distribuiranu pohranu sadržaja na način da je on uvijek dostupan ukoliko je unutar nekog vremenskog razdoblje sadržaj bio tražen, čak i u slučaju da je izvornik ili izvorni čvor koji je sadržaj objavio, nestao iz sustava. Skalabilnost Skalabilnost je jedno od najvažnijih „komparativnih prednosti“ P2P sustava u odnosu na klijent-poslužiteljske sustave. Rezultati predočeni dijagramom na slici 29, to i potvrđuju. Naime, većina je P2P mreža zadovoljavajuće ili vrlo skalabilno, njih 70%. Dijagram prikazuje stanje za ukupno deset mreža, jer je za ovo obilježje bilo potrebno razdvojiti klasičnu BitTorrent mrežu od one koja koristi DHT i to stoga što korištenje središnjeg poslužitelja (BitTorrent) – trackera ili strukturiranog distribuiranog sustava (BitTorrent DHT) rezultira razlikom između slabe skalabilnosti (BitTorrent) i vrlo dobre skalabilnosti (BitTorrent DHT).

Tedo Vrbanec FOI, 2010. 99 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 29: Skalabilnost postojeć ih P2P mreža za dijeljenje datoteka

Anonimnost FreeNet i Direct Connect su jedine postojeće mreže istovrsnih entiteta koje su ozbiljno poradile na čuvanju anonimnosti svojih korisnika. FreeNetu je to osnovno pitanje te su stoga mehanizmi vrlo razrađeni te možemo reći da je anonimnost čvorova i komunikacije u FreeNet mreži izvrsna, iako ne i apsolutna (takva praktično nije moguća). Direct Connect, iako pripada u klasu nestrukturiranih centraliziranih P2P mreža gdje je to teže realizirati, čuva anonimnost korisnika i čvorova. Za sve preostale mreže možemo reći da nemaju mehanizama čuvanja anonimnosti čvorova i korisnika. Sigurnost korisnika, podataka i komunikacije Ova skupina parametara raščlanjena je u tablici 14, (str. 93) na sigurnost korisnika, sigurnost podataka i sigurnost komunikacije. Općenito se može zaključiti: sve mreže istovrsnih entiteta za dijeljenje sadržaja imaju u nekom segmentu sigurnosnih pitanja slabu točku, uz napomenu da neke mreže imaju neke sigurnosne mehanizme (koji će biti navedeni). Korisnici i čvorovi su općenito slabo ili nimalo zaštićeni od mnogobrojnih prijetnji. Nabrojimo najčešće, poput napada Man In the Middle, DoS napada, napada preplavljivanjem, trojanaca, virusa, crva, ubacivanje oglasa, praćenje unosa korisnika preko tipkovnice (engl. typeware) i sve ostale moguće maliciozne dodatke uključene u klijente, te u lažne i modificirane sadržaje koji se razmjenjuju. BitTorrent mreža u

Tedo Vrbanec FOI, 2010. 100 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta klasičnom načinu rada s torrent trackerom, barem sprečava ili otežava lažno predstavljanje, lažiranje IP adresa i portova, jer tracker prati i upravlja radom mreže. Kod iste je mreže prilična sigurnost dostupnosti i autentičnosti sadržaja zbog središnje kontrole i sustava reputacije. Kad mreža brine o podacima tako što ih replicira kroz mrežu pa je tako visoka vjerojatnost njihove dostupnosti. FreeNet, Kad i BitTorrent DHT mreža hash funkcijama potpisuju djeliće sadržaja, tako da klijenti automatski odbacuju dijelove čiji se poslani potpisi i oni producirani na čvoru nakon primitka – ne podudaraju. Dodatno, kod FreeNeta podaci ostaju na mreži te su dostupni i nakon odspajanja čvora koji ih je publicirao. Popularniji sadržaji se pri tome višestruko repliciraju, štoviše, sele u dijelove mreže gdje je veća potražnja za njima. Prividno su neizbrisivi i neuklonjivi, osim u slučaju da za njima duže vrijeme nema interesa. Kod komunikacije, u FreeNet mreži je sigurnost i tajnost komunikacije podesiva, od nesigurne (dohvat podataka) do relativno sigurne (javni i tajni ključevi) kod objave i ažuriranja. BitTorrent u tom pogledu ima mogućnost enkriptirane komunikacije koristeći HTTPS protokol, a većina mreža ima mogućnost nastavljanja prekinutog prijenosa. Obračunska politika Sve postojeće P2P mreže osim BitTorrenta nemaju razrađen obračunski sustav i rangiranje sadržaja i korisnika. To je prepušteno aplikativnoj razini, ukoliko je razrađena kod klijenta. Kod klasičnog BitTorrenta s torrent trackerom situacija je sasvim drugačija. Ovdje postoje mnogobrojni načini obračunavanja definirani od vlasnika/upravitelja trackera:

• omjer poslane i primljene količine sadržaja,

• trajanje dijeljenja sadržaja nakon preuzimanja (u satima ili danima),

• minimalna brzina dijeljenja po torrentu,

• minimalno vrijeme dijeljenja novog sadržaja,

• minimalni broj preuzimanja novog sadržaja,

• maksimalno vrijeme prekida dijeljenja i dr.

Tedo Vrbanec FOI, 2010. 101 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

4 SIMULACIJE I SIMULATORI P2P SUSTAVA

P2P tehnologija može se upotrijebiti na više korisnih načina, koji su već ranije opisani. Svaka nova tehnologija, pa ni ova nije izuzetak, mora proći razdoblje sazrijevanja, tijekom kojeg se uočavaju i ispravljaju uočeni nedostaci te unapređuje novim idejama, spoznajama i iskustvima. Unapređivanje novih tehnologija je i potrebno i prirodno. Važno ih je učiniti i efikasnima. Na žalost, P2P mreže nije moguće testirati na (jednostavan) način kao što je moguće simulirati model klijent/poslužitelj gdje je uvijek osiguran cjelovit pregled odredišnog dijela mreže i mnogo je jednostavnija analiza. Jedan (glavni) razlog je broj korisnika neke P2P mreže koji se stalno mijenja, zbog čestih prijava i odjava s mreže. Zbog tih problema skoro je nemoguće ocijeniti performanse nove P2P aplikacije ili algoritma bez simulacije. Ima li pravih simulatora za tu namjenu, pitanje je na koje će se odgovor pokušati dati u nastavku.

4.1 SIMULACIJA SUSTAVA I ZNAČAJKE

„Simulacijsko modeliranje je proces modeliranja stvarnog sustava i simuliranja ponašanja tog modela na računalu, kako bi se moglo predvidjeti kako će se sustav ponašati u stvarnosti. Modeliranje je proces blisko vezan za način ljudskog razmišljanja i rješavanja problema. Model je pojednostavljeni oblik stvarnog sustava koji sadrži bitne osobine stvarnog sustava, na temelju kojih možemo pretpostaviti da će se stvarni sustav ponašati na isti ili sličan način na koji se ponaša i sam model kod simulacije. Simulacijski modeli su modeli dinamičnih sustava, tj. sustava koji se mijenjaju u vremenu.“ [139] „Simulacija je pokušaj modeliranja sustava da bi ga se znanstveno proučavalo.“ [140]. Cjelovito matematičko modeliranje uglavnom je usmjereno na segmentarno modeliranje, usmjereno rješavanju parcijalnih problema. Stvarni sustavi često su i suviše složeni da bismo ih mogli analizirati [141] u cijelosti. Kako bismo, dakle, neki sustav bolje proučili i opisali, poželjno je koristiti simulacije, jer nam one pojednostavljuju model sustava i omogućuju analizu. Također, simulacijsko modeliranje uključuje razvoj modela pojedinih podsustava i njegovu internu optimalizaciju te povezivanje modela u sustav, u cilju optimalizacije parametara čitavog sustava, kao i modeliranje utjecaja okoline u kojoj sustav egzistira. Priprema simulacije zahtijeva proces apstrahiranja i ovdje se krije zamka da se apstrahiraju detalji koji se ne bi smjeli, jer su od presudne važnosti za ponašanje sustava te

Tedo Vrbanec FOI, 2010. 102 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta njegovo proučavanje. Kod izrade simulatora bitno je uzeti u obzir sve relevantne čimbenike rada sustava i utjecaja na rad sustava, a istovremeno zanemariti one koji nisu bitni, a svojim brojem, a ponekad i složenošću, kompliciraju sustav kao cjelinu, zbog čega je sustav teško proučavati. Simulacije prekrivajućih mreža težak su zadatak [141] zbog prirode prekrivajućih mreža: one su skalabilne i potencijalno jako velike. Simulirati tako veliku mrežu zahtijeva snažno računalo ili klaster računala s velikom količinom memorije. Dobro bi svojstvo simulatora bilo da omogućuju simulacije distribuirane na nekoliko računala. Nadalje, simulatori se trebaju ponašati u skladu sa stvarnim ograničenjima stvarnih mreža; njihovim kašnjenjem paketa, zagušenjima mreže, ograničenjima brzine i sl., a to opet uvodi nove zahtjeve prema sklopovlju računala na kojima se simulacija izvodi. Povrh svega, za uspjeh i performanse simulacije važan je i odabir načina njezine izvedbe, odnosno vrsta simulacije. U nastavku slijedi opis vrsta računalnih simulacija.

4.2 VRSTE RAČUNALNIH SIMULACIJA

„Modelima se omogućava opisivanje složenih fenomena.“ [142] Sustav iz stvarnog svijeta, računalnom se simulacijom modelira u formu računalnog programa. Računalna simulacija omogućava dizajn sustava na bilo kojoj razini detalja. [141] Računalne modele možemo podijeliti na sljedeći način [141][143]:

• stohastički ili deterministički,

• statički ili dinamički,

• diskretni ili kontinuirani,

• mjesni ili distribuirani. „Deterministički modeli su modeli čije je ponašanje unaprijed predvidivo. Čista suprotnost determinističkih modela su stohastički modeli. Njihovo se ponašanje ne može unaprijed predvidjeti. Za te modele je karakteristično njihovo slučajno ponašanje.“ [142] „Stohastički modeli koriste generatore slučajnog odabira broja kako bi modelirali slučajnost ili nasumičan događaj...“ [141] Oni se još nazivaju i Monte Carlo simulatori. „Statički modeli koriste jednadžbe koje utvrđuju odnose između elemenata modeliranog sustava i pokušavaju naći stanje u kojem je sustav u ravnoteži. Takvi modeli se često koriste kod simulacije stvarnog sustava, kao jednostavniji slučaj modeliranja prije pokušaja dinamičkog modeliranja. Model dinamičke simulacije radi promjene u sustavu prema ulaznim signalima.“ [141]

Tedo Vrbanec FOI, 2010. 103 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

„U diskretnim modelima se stanje sustava mijenja samo u nekim vremenskim točkama. Te se promjene nazivaju događaji. U kontinuiranim modelima varijable stanja se mijenjaju kontinuirano u vremenu.“ [142] Distribuirani modeli simulacije rade u mreži međusobno povezanih računala. [141]

4.3 SIMULACIJA S DISKRETNIM DOGAĐAJIMA

„Simulacije računalnih sustava koje su rađene zbog analize performansi su u pravilu simulacije s diskretnim događajima. Takve simulacije se koriste i kod simuliranja P2P sustava. Kod simulacije s diskretnim događajima, prikaz vremena je podijeljen na odsječke, a stanje sustava se mijenja ako se pojavi neki događaj. Za usporedbu, neprekidna simulacija oblikuje vrijeme kao neprekidno napredovanje.“ [141] Na slici 30 je prikazan dijagram toka simulacije s diskretnim događajima [141].

Slika 30: Dijagram toka simulacije s diskretnim događ ajima Prema: Feigl, M., Usporedba simulatora mreže istovrsnih entiteta (diplomski rad), Fakultet elektrotehnike i rač unarstva, 2008.

Tedo Vrbanec FOI, 2010. 104 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

„Simulacija s diskretnim događajima računalnog sustava može se dalje razložiti na simulaciju upravljanu događajem1 i simulaciju temeljenu na ciklusu2. Simulacija upravljana događajem oblikuje aktivnosti sustava kao slijed događaja koji se pojavljuju asinkrono i u nepravilnim intervalima. Na primjer, simulacija mrežnog poslužitelja bi uključila događaje kao što je dolazak mrežnog paketa ili dovršenje operacije pisanja na tvrdi disk. Simulacije upravljane događajem mogu oblikovati širok skup različitih sustava. Kod simulacije temeljene na ciklusu, sve promjene stanja sustava su sinkronizirane na jedan takt. Simulacija je u biti automat stanja koji promijeni stanje sa svakim taktom. Ove simulacije se koriste za oblikovanje jezgre procesora ili drugih digitalnih sustava koji rade u taktovima. Ova dva pristupa mogu biti usklađena u simulaciji na način da se takt prikaže kao događaj.“ [141]

4.4 KRITERIJI USPOREDBE I VREDNOVANJA P2P SIMULATORA KORIŠTENIH U ISTRAŽIVANJU

Autor ovog rada je do informacija o specijaliziranim P2P simulatorima te o simulatorima opće namjene i mrežnim simulatorima za koje postoji saznanje da su korišteni ili da se mogu koristiti za simulacije P2P sustava, dolazio „rudarenjem podataka“ putem Internet izvora: rudarenjem weba te pretraživanjem članaka prikupljenih iz on-line (stručnih i znanstvenih) baza podataka (kako otvorenog tipa tako i onih dostupnih akademskoj zajednici unutar CARNetova IP raspona). Istovremeno je sa svakom novom informacijom o postojanju simulatora potencijalno iskoristivog za P2P simulacije, slijedila potraga za njegovim programskim kôdom, što je ponegdje završavalo i pokušajima neposrednog kontakta elektroničkom poštom s autorima pronađenih radova/simulatora. Svim je simulatorima proučena dokumentacija dostupna na webu te upakirana s programskim kôdom te su iz znanstvenih i stručnih radova izvučena iskustva drugih autora u radu s njima. Instalacije simulatora većinom nisu postojale već je programski kôd trebalo prevesti (engl. compile) na odgovarajućem operacijskom sustavu. Simulatori su ocjenjivani prema sljedećim kriterijima [144]:

• arhitektura simulatora,

• korisnost,

• skalabilnost,

1 Engl. Event-driven Simulation. 2 Engl. Cycle-based Simulation.

Tedo Vrbanec FOI, 2010. 105 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

• statistika,

• simulacija paketske mreže i

• ograničenja sustava. Arhitektura simulatora Ovaj kriterij se odnosi na oblik i rad simulatora, svojstva koja uključuje, te kako su izvedena. Da bi se mogli izvoditi zaključci o ovom kriteriju, potrebno je odgovoriti na sljedeća pitanja:

• podržava li strukturiranu ili nestrukturiranu simulaciju prekrivajuće mreže, ili oboje;

• simulira li svaki paket, ili apstrahira podmrežu djelomično, odnosno potpuno;

• radi li simulator na principu simulacije s diskretnim događajima, odnosno koristi li vremenski raspored koji sinkronizira razmjenu poruka među čvorovima, dodajući kašnjenje po potrebi;

• omogućava li distribuiranu simulaciju, odnosno da li simulacije mogu raditi na više računala kako bi omogućili veće preračunavanje ili brže izvođenje simulacije. Ovaj kriterij uključuje i način na koji je simulirano ponašanje čvora. Na primjer, može li sustav biti detaljiziran u sljedećim pitanjima:

• prijava i odjava čvorova s mreže;

• može li se simulirati nemogućnost pravilne odjave čvora s mreže;

• može li se simulirati i iterativno i rekurzivno usmjeravanje. Korisnost1 Pod korisnošću se podrazumijeva koliko je teško naučiti i koristiti simulator, a uključuje sljedeće:

• ima li simulator čisto i intuitivno sučelje prema korisniku, koje omogućava lako razumijevanje kôda protokola, laku izmjenu i prijenos kôda u druge aplikacije ili obratno;

• kako je napravljen scenarij za pokus, postoji li programski jezik za upravljanje aplikacijom, koliko ga je lako naučiti i koliko je izražajan;

• kakva dokumentacija postoji i može li se lako pratiti. Skalabilnost P2P protokoli su uglavnom izvedeni da budu skalabilni i da rješavaju probleme sa skalabilnošću. Jedan od najvažnijih testova koje bi simulator trebao pružiti je kako

1 U tablici 16 (str. 135) korisnost je, radi preglednosti, podijeljena na dvije komponente: dokumentacija i GUI.

Tedo Vrbanec FOI, 2010. 106 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta protokol radi na tisuću ili više čvorova, pogotovo zato što bi bilo jako teško, ako ne i nemoguće, pokušati primijeniti pokus u stvarnoj mreži tog i višeg reda veličine. Statistika Još jedno ključno gledište simulatora je rezultat kojeg proizvede. Rezultati moraju biti izražajni na način:

• da se s njima može dalje rukovati kako bi se iznijela statistička analiza i

• da bi se mogli izraditi grafovi na osnovu rezultata. Početno stanje simulatora bi trebalo biti pohranjeno, kako bi simulacija mogla biti ponovljena i kako bi se ponovno mogli dobiti isti rezultati. Simulacija paketske mreže P2P simulatori imaju različite pristupe simulaciji paketne mreže, od simuliranja svakog paketa do potpunog apstrahiranja slojeva nižih od sloja prekrivajuće mreže. Kriteriji koji se ocjenjuju uključuju:

• karakteristike mrežnog sloja koje mogu biti simulirane,

• simulaciju prometa, koji je nevezan uz promet u prekrivajućoj mreži,

• simuliranje razlike u kašnjenjima pojedinih veza,

• koliko je stvarno modelirana topologija ispod prekrivajuće mreže. Ograničenje sustava Važno je proučiti na koji način simulator koristi resurse računala, odnosno upotrijebi li maksimalno snagu računala i memorijski prostor za potrebe simulacije. Ako je neefikasan u iskorištenju resursa, to će utjecati na vrijeme preračunavanja i na broj čvorova koji mogu biti uključeni u sustav, a da se ne poremeti ili umanji funkcionalnost sustava.

4.5 METODA VREDNOVANJA

Preduvjet za uključenje simulatora u naredni pregled jest ta da je u stanju simulirati ponašanje P2P sustava. To se postiže:

• proučavanjem službene dokumentacije simulatora,

• eksperimentalnim radom u svakom simulatoru1,

• pregledom dostupnih iskustava (literature, radova, izjava) drugih autora i korisnika2.

1 Neki se simulatori ni na koji način nisu mogli pokrenuti ni pod dva operacijska sustava Windows XP i Ubuntu 9.10, bez obzira na veliki trud autora. 2 Domene pretrage su bile sljedeće: znanstvene baze podataka dostupne u CARNet mreži (otvorene i s pretplatom MZOŠ), web sadržaji sa specijaliziranih skupova, konferencija i savjetovanja, te IRC kanali.

Tedo Vrbanec FOI, 2010. 107 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Za svaki tako odabrani simulator koristi se posljednja dostupna verzija. Ako su sa simulatorom u paketu i datoteke primjera nekih scenarija simulacije, simulacije se pokušavaju izvršiti i rezultati usporediti s očekivanim, a radi provjere rade li simulatori ispravno. Skalabilnost simulatora se testira na način da se provode pokusi kako bi se pronašao najveći broj čvorova koji se mogu priključiti na mrežu i uspješno komunicirati jedni s drugima, uz konzultiranje dokumentacije. Za svaki se pojedini simulator proučava sva dostupna literatura vezana uz njega, uključivši dokumentaciju i primjere istraživanja autora simulatora. Neki vrhunski generički simulatori poput PowerSima, GPSS, SIMAN ili SLAM II nisu uvršteni u ovaj pregled, jer je njima teško moguće modelirati simulaciju P2P sustava niti na približno zadovoljavajući način, odnosno praktično je gotovo nemoguće. Dakle, generički simulatori su otpali. Neki mrežni simulatori u stanju su simulirati ponašanje P2P sustava, te ih je nekolicina uvrštena u pregled i usporedbu.

4.6 PREGLED KORIŠTENIH P2P SIMULATORA

U istraživanju su obuhvaćeni svi simulatori P2P sustava o kojima je autor imao spoznaju da postoje, pod trivijalnim uvjetom da su dostupni bilo preuzimanjem s Interneta, bilo neposrednim kontaktom s autorom/autorima. Prvobitno je postojalo ograničenje da se u obzir ne uzimaju simulatori koji su u smislu njihova razvoja neaktivni više od pet godina, ali s obzirom na relativno mali ukupni broj potencijalnih simulatora (njih 16), taj je uvjet tijekom rada izbačen. Neke je od simulatora bilo nemoguće pokrenuti i uvjeriti se da je ono što piše u službenoj dokumentaciji ili pronađenim radovima o njima, uistinu točno. Bilo je neophodno proučiti sve dostupne stručne i znanstvene radove u kojima je dokumentirano njihovo korištenje. U tablici 15 na str. 110 usporedno su navedeni osnovni podaci o korištenim simulatorima, a u tablici 16 na str. 135, također usporedno, njihova obilježja. Iako simulatori opće namjene postoje, vrlo ih je teško natjerati da na zadovoljavajući način rade vrlo specifičnu simulaciju P2P sustava. Simulatori P2P sustava mogu se podijeliti na dvije grupe: mrežne simulatore i simulatore prekrivajuće mreže. Mrežni simulatori [145] omogućuju simulaciju mrežnih protokola (TCP, UDP, IP), na razini paketa. Oni uglavnom uzimaju u obzir kašnjenja mreže, brzinu veza, efekte TCP tokova i dr. detalje, a koji se realiziraju preko stvarne Internet topologije. Ipak, za modeliranje i obradu detalja nižih slojeva ISO/OSI modela komunikacije potrebno je „platiti“ troškove u pogledu utroška potrebnih računalnih

Tedo Vrbanec FOI, 2010. 108 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta resursa, što dovodi do problema nedostatne skalabilnosti takvog modeliranja, a smanjena skalabilnost donekle dovodi u pitanje smislenost takvih simulacija, odnosno ograničava njihovu upotrebljivost. Simulatori prekrivajuće mreže više modeliraju algoritme prekrivajuće mreže i njihovo ponašanje kod usmjeravanja, te uopće ne uzimaju u obzir mrežni sloj. Za evaluatore i istraživače prekrivajućih mreža (pretjerana) razrada detalja i složenost mrežnih simulatora predstavlja ograničenje i nepotreban teret. Iz tog razloga, (neki) simulatori prekrivajuće mreže kod modeliranja ne uzimaju u obzir detalje niže razine. To ima smisla, s obzirom da prekrivajuće mreže općenito zanemaruju detalje komunikacijske podmreže odnosno ispod-ležećeg Interneta i ne brinu se i ne obraćaju pažnju na nj. Ipak, neki od njih se mogu i proširiti, najčešće na način da učitaju mrežne modele.

Tedo Vrbanec FOI, 2010. 109 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 15: Osnovne informacije o korištenim P2P simulatorima

Simulator PP1 OS Datum2 Licenca Izvor http://www.neurogrid.net/ Neurogrid Java, *.tgz svi 25.06.2003. izvorni kod http://sourceforge.net/projects/neurogrid FreePastry Java, *.jar svi 13.03.2009. BSD licenca http://www.freepastry.org/FreePastry/ PeerSim Java, *.zip → *.jar svi 29.09.2009. GNU GPL http://peersim.sourceforge.net/ RangeSim Java, *.zip → *.java svi 23.07.2006. GNU GPL http://rangesim.sourceforge.net/ http://gnutellasim2.sourceforge.net/ GnutellaSim Java, *.jar svi 28.07.2004. neodređeno http://sourceforge.net/projects/gnutellasim2/ Narses Java, *.tgz svi 08.10.2003. neodređeno http://sourceforge.net/projects/narses/ http://sourceforge.net/projects/nsnam/ NS-2 C++, *.tar.gz svi 18.06.2009. BSD, GNU GPL http://nsnam.isi.edu/nsnam NS-3 C++, *.tar.bz2 svi 27.01.2010. GNU GPL http://www.nsnam.org/ OMNeT++ C++3, *.tgz svi 08.12.2009. APL, komercijalno4 http://www.omnetpp.org/ OverSim C++, *.tgz svi 08.09.2009. GNU GPL http://www.oversim.org/ J-Sim Java, *.tgz svi 05.07.2006. JSIM licenca5 http://sites.google.com/site/jsimofficial/ GnucNS C#, *.zip → *.exe Win 01.08.2003. OSS http://www.gnucleus.com/GnucNS/ p2psim C++, *.tar.gz unixoidi 18.04.2005. freeware http://pdos.csail.mit.edu/p2psim/ http://projects-deim.urv.cat/trac/planetsim/, PlanetSim Java, *.zip svi 08.09.2008. LGPL6 http://sourceforge.net/projects/planetsim/files/ PeerfactSim.KOM Java, *.zip svi 12.03.2009. GNU GPL http://peerfact.kom.e-technik.tu-darmstadt.de/ GPS Java, *.zip svi 25.09.2005. freeware http://www.cs.binghamton.edu/~wyang/

Tedo Vrbanec FOI, 2010. 110 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Legenda

1 Programski jezik u kome je simulator izveden i korištena vrsta paketiranja za distribuiranje simulatora. 2 Datum posljednje inačice – puno govori o tome koliko je pojedini simulator u aktivnoj fazi razvoja odnosno da li je njegov razvoj obustavljen. Tamo gdje je riječ o dostupnosti izvornog koda, uvijek postoji mogućnost buđenja projekta iz mrtvila, angažiranjem nekih novih razvojnih programera. U povijesti je bilo takvih primjera – najpoznatiji je nastanak Mozilla Fondation i njihovih besplatnih proizvoda Firefox i Thunderbird (spomenimo najpoznatije), a koji su nastali na temelju javno objavljenoga izvornog koda Netscape Communicatora. 3 Uz uporabu modula JsimpleModule, moguće je koristiti i Javu. 4 OMNeT++ je besplatan za akademsku i nekomercijalnu uporabu (ACL, Academic Public Licence), a za komercijalnu uporabu je potrebno platiti licencu. 5 Pojedine vanjske komponente imaju svoj vlastiti sustav licenciranja (http://nsr.bioeng.washington.edu/jsim/download/license.html). 6 GNU Lesser General Public Licence. [146]

Tedo Vrbanec FOI, 2010. 111 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

4.6.1 P2P SIMULATORI PREKRIVAJUĆE MREŽE

Ova vrsta simulatora je vrlo šarolika po svojim svojstvima i mogućnostima te vremenu nastanka posljednje inačice.

NEUROGRID

NeuroGrid (http://www.neurogrid.net, http://sourceforge.net/projects/neurogrid), je jednodretveni simulator diskretnih događaja koji je u stanju simulirati FreeNet, Gnutella, Pastry i NeuroGrid P2P protokole, čija je izrada pokrenuta s ciljem „osiguranja okvira za pronalaženje informacija u distribuiranoj okolini. NeuroGrid se temelji na ideji automatizacije procesa ...“ [147] Unatoč trudu, znanju i praksi kompajliranja programa u izvornom kôdu, autoru nije uspjelo pokrenuti ovaj simulator, osim u CLI sučelju, što je za današnje standarde neprihvatljivo i neupotrebljivo. Ne radi ni odgovarajući Java aplet na web stranicama. Unutar instalacijske mape izvornog Java kôda nalazi se i prikaz GUI sučelja, koji je vidljiv na slici 31. Pored nemogućnosti pokretanja simulatora u grafičkom sučelju, posljednja verzija simulatora datira iz lipnja 2003. godine te je izvjesno da je njegov razvoj napušten.

Slika 31: Suč elje NeuroGrid simulatora Izvor: Slikovna datoteka unutar instalacijske mape NeuroGrid simulatora

Tedo Vrbanec FOI, 2010. 112 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

S obzirom na autorovu nemogućnost pokretanja NeuroGrida, daljnji se zaključci, možda i irelevantno, izvode iz dostupne službene dokumentacije [147] i [148], a prema njima NeuroGrid ima sljedeća obilježja:

• simulira ograničeno i stalno kašnjenje mreže,

• kod simulacija podržava različite mrežne topologije,

• podržava proširenja protokola,

• mogućnost podešavanja postavki distribucije sadržaja,

• uzastopno izvršavanje simulacija. Koristi svojstvene datoteke za smještanje parametara simulacije koje korisnik prilagođava svojim potrebama, a može određivati vrstu protokola, broj simuliranih pretraživanja i preferirano korisničko sučelje (GUI Java apleti). Apleti prikazuju poruke – pretraživanja koja se šalju prema čvorovima u svakom koraku. Statistički podaci poput broja poruka i stanja simulacije mogu se spremiti u datoteke za kasniju analizu. NeuroGrid podrazumijeva da su udaljenosti između čvorova konstantne. Nakon što se poruka – pretraživanje pošalje (prethodno definiranim) čvorovima, ti čvorovi dalje preuzimaju ulogu prosljeđivanja poruka. Zbog jednodretvenosti simulatora, sve dok se postojeći događaj (pretraga) ne završi, dotle se neće aktivirati nova. Dakle, riječ je o slijednom izvršavanju događaja pretraživanja. NeuroGrid korisniku omogućava definiranje sljedećih parametara:

• broja simuliranih čvorova (do 300 000 čvorova1),

• broj čvorova koji se dodaje postojećoj simulaciji nakon što se određeni broj pretraga obavi,

• inicijalni broj veza za svaki čvor,

• broj pretraživanja koje će simulator obaviti odnosno generirati,

• inicijalnu mrežnu topologiju (prsten, slučajne veze ili tzv. power law),

• broj ključnih riječi koji se koristi kod pretraživanja,

• broj dokumenata korištenih u simulaciji,

• broj ključnih riječi koje opisuju pojedini dokument,

• broj dokumenata pohranjenih u svakom čvoru.

FREEPASTRY

FreePastry (www.freepastry.org) ima vrlo opširnu dokumentaciju, s detaljnim opisom što je potrebno činiti da bi se simulacija pustila u rad. Koraka ima izuzetno mnogo

1 Broj čvorova ovisi o memoriji računala. 300 000 čvorova je ograničenje za računalo s 4GB RAM-a.

Tedo Vrbanec FOI, 2010. 113 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta i ovise o mnoštvu faktora. Rezime: za samu inicijalizaciju simulatora potrebno je pohađanje tečaja. Simulator nije zaokružena cjelina, već nepovezane komponente koje korisnik tek treba sklopiti u radnu cjelinu, prethodno mijenjajući postavke programa kako bi se prilagodio računalnom sustavu. To je u potpunoj suprotnosti s konceptom prenosivosti apleta nastalih korištenjem Java programskog jezika. Ipak, i uz detaljne upute, prilikom pokretanja simulatora dolazi do grešaka koje onemogućavaju njegovo testiranje. Zaključak: FreePastry je simulator za vrlo specijalizirane korisnike - iskusne Java programere. Posljednja inačica datira od 13. ožujka 2009. Na aplikacijskoj razini podržava Pastry protokol, a na transportnoj razini nudi izbor između tri transportna protokola: tzv. neposredni (engl. direct), RMI i Wire. Kada koristi neposredni transportni protokol, u jednom Java virtualnom stroju FreePastry emulira mrežu s korisnički definiranim brojem Pastry čvorova, bez modeliranja fizičke mreže. Tada glavna (i jedina) dretva simulatora postavlja mrežu i inicijalizira događaje pretraživanja. S obzirom da je simulator jednodretveni, pretrage se obavljaju slijedno. Kod odabira RMI transportnog protokola, „Java tehnologija RMI omogućava objektima koji se izvršavaju unutar jedne Java VM pozivanje metoda objekata koji se izvršavaju unutar neke druge Java VM. RMI omogućava povezivanje različitih aplikacija pisanih Java programskim jezikom.“ [149] Wire transportni protokol koristi socket1 za IPC (Interprocess Communication), međuprocesnu komunikaciju. Podešavanje parametara simulacije, poput broja čvorova u simulaciji ili broja generiranih događaja, u FreePastry simulatoru se podešava nakon pokretanja simulatora u naredbodavnom retku, odnosno u CLI sučelju, u kome se prikazuju i rezultati simulacije, u stvarnom vremenu kako se i događaju. Protokol Pastry za usmjeravanje koristi određenu metriku kojom mjeri udaljenost između čvorova; stoga je tu istu metriku, (Euklidova prostora), poželjno koristiti u simulatoru. FreePastry nudi izbor između tri metrike: Euklidovu, slučajnu i mrežnu. Simulator nije u stanju simulirati kašnjenja mreže kod prosljeđivanja poruka, štoviše, simulator ne zna baratati s vremenom. U jednoj od posljednjih inačica uvedena je mogućnost enkriptirane komunikacije čvorova, i to SSL slojem.

1 „Utičnica“, komunikacijsko sučelje.

Tedo Vrbanec FOI, 2010. 114 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

PEERSIM

PeerSim (http://peersim.sourceforge.net/) vrlo je skalabilan simulator diskretnih događaja napisan u programskom jeziku Java i oblikovan na način da omogućuje proširivanje dodatnim komponentama čime se može prilagoditi specifičnim zahtjevima korisnika. Simulira strukturirane i nestrukturirane prekrivajuće mreže na aplikacijskoj razini. PeerSim se konfigurira pomoću tekstne datoteke u kojoj su specificirani svi parametri simulacije. Ima predefinirane modele P2P simulacija. Može pokretati simulacije upravljane događajem i simulacije temeljene na ciklusu i pri tome koristi dva različita algoritma. U nastojanju da bude vrlo skalabilan (podržava do milijun čvorova1) i što dinamičniji, kod simulacija temeljenih na ciklusu, simulator ne uzima u obzir detalje poput kašnjenja paketa u komunikacijskoj podmreži i općenito simulaciju paketnog sloja i konkuretnosti. Kod simulacija temeljenih na ciklusu, čvorovi se odabiru slučajnom funkcijom, a simulacija se provodi kroz korake odnosno cikluse. Tijekom svakog koraka, svaki čvor ima mogućnost izvršenja neke akcije pretraživanja koje se izvršavaju slijedno. Kod simulacija upravljanih događajem, skup događaja (poruka), raspoređen je u vremenu, a algoritam koji se pri tome koristi podržava konkurentnost. U ovoj se vrsti simulacija dozvoljava mogućnost simulacije kašnjenja mreže kod prosljeđivanja poruka. Simulacija se dinamički mijenja korištenjem modula PeerSim Dynamics koji modificira stanja sustava, dodajući ili uklanjajući čvorove te simulirajući zastoje u njihovu radu. Simulator ne podržava distribuiranu simulaciju. „Mreža je prikazana kao skup čvorova koji mogu sadržavati jedan ili više protokola. Komunikacija između čvorova se postiže pozivom metode objekta. Svaki čvor ima iste protokole, tj. instance klase protokola tvore prekrivajuću mrežu. Instance čvorova i protokola nastaju kloniranjem. To znači da je samo jedna instanca stvorena korištenjem konstruktora objekta i služi kao prototip, a ostali čvorovi su klonirani prema tom prototipu.“ [141] Dokumentacija PeerSim simulatora je dvostruke prirode: dio dokumentacije koja se odnosi na simulaciju temeljenu na ciklusu je detaljno opisana, dok je dio koji se odnosi na model simulacije temeljene događajem opisan slabo, gotovo simbolički. Simulator ima modul koji osigurava statističke informacije o mreži.

1 Samo kod simulacija temeljenih na ciklusu. Kod simulacija upravljanih događajem, nije precizirano.

Tedo Vrbanec FOI, 2010. 115 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Simulator korištenjem modula podržava dvije mrežne topologije. Modul SG-1 omogućuje simulaciju mrežne topologije super-čvorova, a modul T-Man omogućuje simulaciju mrežne topologije kod koje se funkcijom rangiranja određuju preferencije svakog čvora prema njemu susjednim čvorovima.

RANGESIM

RangeSim (http://rangesim.sourceforge.net/) je kolekcija klasa za simulaciju diskretnih događaja - distribuiranih protokola za pretraživanje strukturiranih P2P mreža koji se temelji na PeerSim simulatoru, a omogućuje definiranje raspona za varijable. Simulacije su temeljene na ciklusu na način da [150] u svakom ciklusu svaki čvor: 1. obradi sve ulazne poruke, 2. odgovori na upite i 3. proslijedi sve upite drugim čvorovima. „Troškovi komunikacije“ ili kašnjenje paketa u transportnom sloju se kod simulacija ne uzimaju u obzir, već se podrazumijevaju konstantnom veličinom.

GNUTELLASIM

GnutellaSim [151][152] je simulator (http://gnutellasim2.sourceforge.net/, http://sourceforge.net/projects/gnutellasim2/) diskretnih događaja na paketnoj razini Gnutella P2P protokola, koji omogućuje potpunu evaluaciju Gnutella sustava s detaljnim mrežnim modelom. GnutellaSim predstavlja samo jednu od mogućih implementacija šireg projekta – okvira, pod nazivom Packet-level Peer-to-Peer Simulation Framework. Obilježja su tog okvira, odnosno, moglo bi se reći – generičkog P2P simulatora, izolacija funkcija, struktura orijentirana na protokol, proširivost u smislu mogućnosti alternativnih implementacija za specifične P2P sustave i prenosivost na druge mrežne simulatore. GnutellaSim ima ugodno GUI sučelje, uz mogućnost laganog podešavanja mnogobrojnih opcija. Iako su izbornici i opcije na njemačkom jeziku, to nije nepremostiva prepreka za korisnike koji ne razumiju njemački jezik. Na slici 32 prikazane su snimke prikaza zaslona tijekom jednog od mnogobrojnih načina rada simulatora. Iako se u dokumentaciji predstavlja skalabilnim, među ponuđenim opcijama koje se mijenjaju u grafičkom sučelju, broj čvorova se inicijalno može postaviti na maksimalno 25 čvorova. Kada se simulacija postavi, prije njenog pokretnja moguće je dodati jedan po jedan čvor te ih proizvoljno povezivati vezama s drugim čvorovima. Ipak, teško je odrediti postoji li granica te skalabilnosti, osim strpljivosti korisnika. Dokumentacija o tome ne

Tedo Vrbanec FOI, 2010. 116 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta govori ništa. Može se reći da ručno povećanje broja čvorova unutar brojaka koje je fizički moguće ručno unijeti, ali i veze unesenih čvorova s drugim čvorovima, vidljivo ne utječu na potrošnju računalnih resursa. Simulator nudi pregledne i detaljne statističke podatke.

Slika 32: Prikaz rada GnutellaSim simulatora

GNUCNS

GnucNS (http://www.gnucleus.com/GnucNS/) je mrežni simulator načinjen za proučavanje performansi distribuiranih mreža, (posebno Gnutelle), u različitim konfiguracijama, „s ciljem dobivanja odgovora na neka temeljna pitanja oblikovanja“ [153], poput algoritma za unapređenje nekog čvora u super-čvor ili njegovo degradiranje u čvor, zatim određivanja optimalnog broja veza i vremena življenja za mrežu određene veličine, kao i različitih postavki širine potrebnog komunikacijskog pojasa. Simulator čine sljedeći dijelovi: super-čvorovi, webcache i mrežni promet. Svaki se od njih može isključiti ili uključiti prilikom svakog početka simulacije, a postavke se mogu pohraniti te kasnije analizirati.

Tedo Vrbanec FOI, 2010. 117 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Ima jednostavno grafičko sučelje vidljivo na slici 33. Simulator nudi samo osnovne statističke podatke o upravo održanoj simulaciji. Dokumentacija ne može biti skromnija – osim da je uopće nema: par redaka u tekstnim datotekama unutar instalacijske mape. Na službenim web stranicama je također par redaka teksta. Simulator je napisan u programskom jeziku C#, izdan pod GNU GPL licencom te radi pod Windows OS-om.

Slika 33: Suč elje GnucNS simulatora

P2PSIM

P2psim (http://pdos.csail.mit.edu/p2psim/) je besplatni, višedretveni simulator diskretnih događaja koji simulira paketski sloj. Koristi se za evaluaciju i istraživanje P2P protokola, a predviđen je za rad na unixoidnim operacijskim sustavima [154]. Napisan je u programskom jeziku C++. Simulator je nastao kako bi olakšao razumijevanje rada P2P protokola, omogućavajući njihovu analizu, a uz nastojanje da ima razumne performanse. Podržava Chord, Accordion, Koorde, Kelips, Tapestry i Kademlia P2P protokole [154] [155]. Simulira samo prekrivajuće mreže. Dokumentacija [154] govori da čvorovi tijekom simulacije mogu napuštati mrežu, ali ništa ne kaže o dolascima novih čvorova. P2Psim je u stanju simulirati greške u radu čvorova, a kod pretraživanja podržava iterativno i rekurzivno pretraživanje.

Tedo Vrbanec FOI, 2010. 118 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Konfiguracija se za pojedinu simulaciju postavlja u tekstnu datoteku. Simulator ne podržava distribuiranu simulaciju. Dokumentacija se sastoji od dvije pdf datoteke pri čemu se jedna bavi dizajnom na 25 stranica, a druga je priručnik na devet stranica, pri čemu su oba dokumenta na koncepcijskoj razini, bez primjera, algoritama i korak-po-korak uputa za korištenje. Nazivna skalabilnost simulatora je 3000 čvorova, iako ni samim programerima uz taj broj čvorova, na njihovom raspoloživom slabijem sklopovlju nije uspjelo dotjerati simulaciju do kraja korištenjem Chord protokola. Instalaciju nije bilo moguće uspješno izvršiti radi provjere rada i mogućnosti simulatora.

PLANETSIM

PlanetSim (http://projects-deim.urv.cat/trac/planetsim/) je simulator diskretnih događaja za P2P prekrivajuće mreže načinjen za istraživače i razvijatelje P2P mreža [156] [157]. Izvorni je kôd napisan u Javi. Prema [156], simulator ima zajednicu korisnika koja aktivno sudjeluje u njegovu razvoju, jer je „modularan, fleksibilan i pregledan u dizajnu i implementaciji“. Simulator ima implementiran Chord1 protokol kojim može obavljati simulacije sa do 100 000 čvorova. Arhitektura simulatora je slojevita i modularna [158] što olakšava njegov razvoj te validaciju novih algoritama prekrivajuće mreže koje simulator može koristiti. PlanetSim se sastoji od tri sloja [159], što je prikazano slikom 34 na str. 120 [160]:

• mrežni sloj (brine za komunikaciju svih čvorova u mreži),

• sloj čvorova (implementira željenu prekrivajuću mrežu koja se kod PlanetSima sastoji od tablice usmjeravanja i mogućnosti aplikativne podrške) i

• aplikacijski sloj (koristi standardna API programska sučelja za implementaciju „cilja“, poput stvaranja DHT-a). Simulator je u stanju implementirati i simulacije usluga2 povrh prekrivajuće mreže, koristeći se standardnim programskim sučeljima (API) za strukturirane prekrivajuće mreže3 i P2P algoritmima ugrađenima u prekrivajuću mrežu.

1 Radi potpune istinitosti potrebno je spomenuti da PlanetSim simulator ima implementiran i Symphony protokol, ali Symphony je za ovaj rad irelevantan P2P protokol, s obzirom da se nigdje ne koristi te predstavlja modifikaciju Chord protokola. 2 U [158] se navode, CAST i DOLR usluge odnosno servisi prekrivajuće mreže. 3 Izgleda da se [158] za API koristi kôd vrlo sličan ako ne i istovjetan kôdu koji za API koristi FrePastry.

Tedo Vrbanec FOI, 2010. 119 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 34: PlanetSim Arhitektura Izvor: Planetsim Core Team, PlanetSim: Object Oriented Simulation Framework for Overlay Networks, Planet research project, , (11. ožujak 2010.)

Jedna od glavnih zamisli stvaranja PlanetSim simulatora, olakšanje je prijenosa simulacijskog kôda u razvoju u eksperimentalni kôd koji se koristi u stvarnom Internetu [161]. S tim ciljem simulator ima tzv. (engl.) wrapper – omatajući kôd koji brine o mrežnim komunikacijama te omogućuje da se simulacije odvijaju u mrežnim okolinama na Internetu, namijenjenim testiranju mrežnih usluga, poput PlanetLaba1.

PEERFACTSIM.KOM

PeerfactSim.KOM (http://peerfactsim.sourceforge.net/) je P2P simulator diskretnih događaja napisan u Javi. Razvijen je pri Tehničkom sveučilištu u Darmstadtu2. Simulator je nastao na zasadama dvaju projekata: DFG Research Project QuaP2P (http://www.quap2p.de) i CONTENT - Excellence in Content Distribution Research (http://www.ist-content.org). „Kako bi simulator bio u stanju odgovoriti na zahtjeve

1 O PlanetLabu je bilo riječi već u predgovoru. „PlanetLab je globalna istraživačka mreža koja podržava razvoj novih mrežnih usluga. Od početka njenog rada 2003. godine, više je od tisuću istraživača s vrhunskih akademskih institucija i industrijskih istraživačkih laboratorija koristilo PlanetLab za razvoj novih tehnologija za distribuiranu pohranu, mrežno mapiranje, sustave istovrsnih entiteta, distribuirane tablice pridruživanja i obradu pretraživanja. PlanetLab se trenutno sastoji od 1086 čvorova na 498 lokacija.“ [161] 2 Multimedia Communications Lab (KOM), Technische Universität Darmstadt, Njemačka.

Tedo Vrbanec FOI, 2010. 120 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta vezane uz složenost P2P sustava“ [162], autori su njegovu arhitekturu oblikovali u četiri sloja, što je prikazano na slici 35.

Slika 35: Arhitektura PeerfactSim.KOM simulatora Izvor: Kaune, S. i dr., PeerfactSim.KOM - Peer-to-Peer Simulator: Overview, Multimedia Communications Lab (KOM), Technische Universität Darmstadt, 2009., , (13. ožujak 2010.)

Prema autorima PeerfactSim.KOM simulatora (Kaune i dr.), „potrebni su efikasni mehanizmi za modeliranje korisnika i njihova ponašanja, a isto vrijedi i za komunikacijske protokole prekrivajuće mreže“ [162]. Korisničko je ponašanje prilično nepredvidljivo. Dugotrajna povezanost i volja da se podaci dijele imaju sasvim druga obilježja od tzv. free-ridera koji ostaju na vezi tek toliko koliko je potrebno da preuzmu sadržaj. Štoviše, promatrajući ključne gradivne komponente rasprostranjenih P2P sustava za distribuciju sadržaja, kako bi se mogli izvući jasni zaključci o efikasnosti pojedinih pristupa, dolazi se do nužnosti simulacije procesa preuzimanja sadržaja (engl. download), „što se apstrakcijom obično izostavlja u P2P simulatorima“ [162]. Simulator kod simulacije uzima u obzir i obilježja prometa u komunikacijskoj podmreži, mehanizam kontrole toka kod TCP protokola, kapacitet komunikacijskog kanala što ga ima korisnik, gubitak paketa i veličine datoteka, „jer su navedena obilježja od presudne važnosti za performanse mehanizma dostave sadržaja“ [162]. Grafičko sučelje je rudimentarno, (slika 36 [162], str. 122), te se njime mogu podešavati samo neki parametri, (ostali su postavljeni na podrazumijevajuće vrijednosti), a

Tedo Vrbanec FOI, 2010. 121 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta detaljnija specifikacija se mora obaviti nekim tekstnim editorom, modificiranjem dokumenta.

Slika 36: Rudimentarno grafič ko su č elje PeerfactSim.KOM simulatora Izvor: -, Screenshot of GUI, (JPEG slika, 1599x683 piksela), (13. ožujak 2010.)

Vizualizacija je bolje kvalitete – njome je moguće dobiti 2D prikaze (slika 37 [162]). Dokumentacija je dobra za dijelove za koje postoji, ali i nepotpuna te pomalo nespretno razmještena na web sjedištu, dok se unutar same instalacije ne nalazi nikakav, pa ni šturi dokument. Dokumentacija se bavi stvaranjem simulacije, konfiguracijom komunikacijske podmreže i vizualizacijom, a instalacija se potpuno prešućuje. Skalabilnost je upitna, ali prema parametrima podrazumijevajućih primjera, naslućuje se da je reda veličine 1000 čvorova.

Slika 37: Vizualizacija simulacije kod PeerfactSim.KOM simulatora Izvor: -, PeerfactSim.KOM - Peer-to-Peer Simulator: Visualization, http://peerfact.kom.e-technik.tu- darmstadt.de/de/documentation/howtos/visualization/> (13. ožujak 2010.)

Tedo Vrbanec FOI, 2010. 122 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

GPS

GPS1 (http://www.cs.binghamton.edu/~wyang/) je simulator opće namjene za P2P mreže. Služi za modeliranje i simulaciju P2P protokola i aplikacija, pri čemu se modelira i preuzimanje datoteka [164]. Komunikacija se modelira na razini poruka, a ne na razini paketa [165], a točnost modeliranja se postiže korištenjem tzv. „makroskopskih2 modela za procjenu performansi“ [164][165], preciznije, makroskopski modeli uzimaju u obzir i modeliraju kapacitet komunikacijskog kanala, kašnjenja u komunikacijskoj podmreži te način djelovanja TCP protokola. Prema autoru, novi se protokoli mogu jednostavno nadodati te pokretati povrh postojećih protokola. Isto vrijedi i za nove mrežne modele i alternativne modele tijeka podataka. Simulator podržava vizualizaciju simulacije. Za razliku od drugih P2P simulatora, ima podršku za BitTorrent protokol. Arhitektura GPS-a prikazana je slikom 38 [165]. Temeljne su komponente simulatora: simulacijski stroj (engl. Engine), topologija, protokoli i agenti. Simulacijski stroj je simulator diskretnih događaja sa globalnim repom čekanja i raspoređivanjem vremenskog slijeda događaja (engl. Event Scheduler). Događaji uključuju korisničke aktivnosti, interne događaje simulatora i poruke koje se razmjenjuju između čvorova. Simulacijska petlja uzima najraniji događaj u repu događaja, izvrši ga, te sve novonastale događaje ubacuje u rep čekanja po vremenskom slijedu. Performanse mjerene potrebnim vremenom za dodavanje i uklanjanje događaja su u logaritamskoj funkcijskoj ovisnosti O(log(n)) od broja događaja n.

Slika 38: Arhitektura GPS simulatora Izvor: Yang, W.; Abu-Ghazaleh, N., GPS: a general peer-to-peer simulator and its use for modeling BitTorrent, Proceedings of the 13th IEEE International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems, str. 425-434, 2005.

1 GPS = engl. General Purpose Simulator for P2P network. 2 Makroskopski, [163] koji se može gledati, opaziti golim okom bez mikroskopa.

Tedo Vrbanec FOI, 2010. 123 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Mrežna topologija GPS simulatoru predstavlja globalni objekt koji se može koristiti za prikupljanje informacija vezanih uz mrežu, poput kašnjenja poruka između neka dva čvora. Svaka veza ima pridruženu brzinu komunikacijskog kanala i kašnjenja u njemu. Simulator razlikuje tri kategorije veza: između čvorova u tranzitu, između tranzitnih čvorova i završnih odnosno korisničkih čvorova te između korisničkih čvorova. Brzina komunikacijskog kanala i kašnjenja mogu se postaviti za svaku grupu ili učitati iz matrice brzina veza i kašnjenja pojedinih veza. Protokoli implementiraju strukturu prekrivajuće mreže kao i funkcije poput ponašanja i reakcije korisnika kod pretraživanja. Centraliziranost, strukturiranost i nestrukturiranost P2P sustava može se modelirati proširenjima protokola. Agenti predstavljaju krajnje točke u kojima se P2P poruke stvaraju ili preuzimaju. Koriste se za implementaciju protokola na različitim slojevima. Agenti apstraktne klase služe za otvaranje sučelja prema aplikacijama. Svaki čvor može imati više agenata, za protokole različitih slojeva. Dokumenti su temeljni elementi dijeljenja za P2P aplikacije. Uključuju osnovne informacije poput veličine. Ključne riječi su apstraktna klasa potrebna radi proširivosti, s obzirom da ih kod pretraživanja koristi većina P2P protokola.

4.6.2 P2P MREŽNI SIMULATORI

Mrežni simulatori uglavnom nisu pogodni za simulacije P2P mreža, a u nastavku su opisani samo oni koji imaju te mogućnosti.

NARSES

Narses (http://sourceforge.net/projects/narses/) je kontinuirani mrežni simulator aplikacijske razine, a uglavnom se koristi kao P2P simulator. Istraživačima omogućava korištenje mrežnih modela različitih razina preciznosti i različitih brzina kako bi bili u mogućnosti efikasno simulirati rad vrlo distribuiranih aplikacija. [166] Narses ima mogućnost simuliranja individualnih, međusobno neovisnih brzina rada čvorova te omogućava modeliranje zahtjevnijih kalkulacija (poput kriptografskih algoritama). Poput stvarnog operacijskog sustava, Narses koristi slojevitost mrežnog modela, ali nasuprot stvarnog mrežnog stoga, Narses spaja niže slojeve (od fizičkog do transportnog) u jedinstveni sloj kojim modelira ponašanje TCP/IP stoga protokola. U distribuciju koju

Tedo Vrbanec FOI, 2010. 124 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta autoru nije moguće pokrenuti1 je uključeno nekoliko mrežnih modela, od brzog i manje preciznog do preciznijeg ali sporijeg:

• Naive - najbrži mrežni model, ujedno i najmanje precizan. Ima topologiju zvijezde kod koje je svaki čvor spojen na zvjezdište, koncentrator (engl. hub). Svaka veza s koncentratorom ima vlastitu brzinu i latenciju. Ukupno vrijeme latencije između bilo koja dva čvora u mreži je zbroj njihovih latencija prema koncentratoru. Brzina između dva čvora je manja od njihove brzine veze s koncentratorom: min(v1,v2), gdje su v1 i v2 brzine veze prvog odnosno drugog čvora s koncentratorom. Kada se šalje poruka između dva čvora, model izračunava latenciju propagacije i latenciju prijenosa te odredi termin dolaska poruke. Model ne uzima u obzir „sudare“ poruka i vrijeme potrebno da se sudari razriješe.

• NaiveTopo – model koji je sličan modelu Naive, s najvećom razlikom u detalju da nije ograničen na topologiju zvijezde. Ovdje se latencija propagacije određuje kao zbroj latencija uzduž kraćeg puta između dvaju čvorova. Isto vrijedi i za brzinu koja se određuje kao minimalna uzduž kraćeg puta. Kalkulacija dolaska poruke ne uzima u obzir eventualne sudare poruka, poput modela Naive.

• FairTopo – model uzima u obzir posljedice paralelnog tijeka podataka. Ukoliko se od jednog čvora paketi šalju prema dva različita odredišta, komunikacijski kanal za slanje svakom od njih je prepolovljen, uz pretpostavku da u pratećoj mrežnoj infrastrukturi (jezgrenoj mreži) ne postoji usko grlo. Sporiji je, ali i precizniji model.

• SafeFairTopo – model koji se temelji na FairTopo modelu, uz razliku što SafeFairTopo dinamički provjerava postoji li usko grlo u jezgrenoj mreži. Ukoliko postoji, taj se podatak zapisuje u datoteku. Narses može koristiti aproksimaciju dva moguća transportna sloja. Transport vjerno kopira osnovnu mrežnu priključnicu (engl. Socket): za slanje i primanje paketa potrebno je otvoriti vrata (engl. port). ReliableMessageTransport ne zahtijeva otvaranja vrata za slanje podataka, već samo osluškivanje vrata preko kojih se primaju podaci. Topologija se kod simulatora opisuje tekstnom datotekom u kojoj za svaku vezu između čvorova postoji redak zapisa oblika: SourceNodeID DestNodeID Latency(seconds) Bandwidth(Mbps). Da bi veza bila dvosmjerna, potrebna su dva zapisa za neka dva čvora.

1 Pokretanje aplikacije prema uputama dovodi do grešaka koje sprečavaju provjeru rada simulatora u praksi.

Tedo Vrbanec FOI, 2010. 125 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Najveći model koji je moguće odabrati, sadrži 600 čvorova koji odašilju do 10 000 simultanih tokova podataka, veličine do 200kB. Simulator nije bilo moguće testirati prateći upute u dokumentaciji.

NS-2, NS-3

NS-2 (http://sourceforge.net/projects/nsnam/, http://nsnam.isi.edu/nsnam) [167] je mrežni simulator diskretnih događaja s podrškom za simulaciju rada TCP protokola, protokola usmjeravanja i multicast1 protokola. Razvoj NS-2 započeo je kao varijanta REAL network simulatora još 1989. godine. Vremenom je 1995. godine dobio potporu DARPA-e, te mnogobrojnih pojedinaca, sveučilišta i organizacija poput Sun Microsystems ili Xerox. To je komandno-linijski simulator napisan u C++ programskom jeziku, koji ima mogućnost izvoza rezultata i u grafički oblik, ali autoru to nije uspjelo. Simulator se sastoji od mnoštva paketa i za njegovu instalaciju, kao i uglavnom za sve P2P simulatore, potrebno je prevođenje iz izvornog kôda u binarni oblik. Također je potrebno mijenjati i dodavati sistemske varijable, a sve uz preduvjet da na računalu postoji razvojna okolina koja to dopušta, tj. potrebno je razriješiti sve mnogobrojne zavisnosti. Simulator je namijenjen prvenstveno za unixoidne platforme, a prema prilično bogatoj ali nesređenoj i raštrkanoj dokumentaciji, simulator bi se trebao moći instalirati, uz određene preduvjete, i na Windows2 operacijskim sustavima. Postoji i implementacija P2P simulacije i to Gnutella mreže. NS-3 (http://www.nsnam.org/) je novi simulator otvorenog kôda koji se nastavlja na tradiciju i zajednicu korisnika, istraživača i razvojnih programera NS-2 simulatora, s ciljem da ga jednom zamijeni. Odlikuju ga poboljšanja grafičkog predočavanja animiranih simulacija i njihovih rezultata. Poput NS-2, to je mrežni simulator diskretnih događaja koji omogućava istraživačima da u „kontroliranoj okolini proučavaju Internet protokole i rasprostranjene sustave“ [168]. NS-3 nije sukladan s NS-2. Prva stabilna inačica izdana je u lipnju 2008., a posljednja u siječnju 2010. godine. Simulator bilježi statističke podatke i upravljanje podacima te ih ima mogućnosti prikazati u više izlaznih oblika. Statistički objekti mogu interaktivno komunicirati sa simulatorom, primjerice na način da zaustave simulator kada neka predodređena varijabla dostigne prethodno utvrđenu vrijednost. Na slici 39 prikazane su vrste sučelja NS-3 simulatora [168].

1 Multicast (engl.) = višestruko razašiljanje. 2 Prema službenoj dokumentaciji, korisnici imaju velikih problema kod instalacije na Windows temeljenim platformama, s tim da je posljednja testirana inačica na kojoj simulator NS2 radi – Windows XP SP2.

Tedo Vrbanec FOI, 2010. 126 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 39: Dijelovi i vrste suč elja NS-3 simulatora Izvor: Henderson, T., ns-3 Overview, nsnam.org, xorp.org, 2010.

Oba se simulatora koriste na sveučilištima, u specijaliziranim kolegijima računalnih znanosti, za edukacijsku svrhu. Oba pate od istog problema: da bi bili jako prilagodljivi, korisnike se upućuje na skriptiranje, tj. pisanje skripata za unošenje parametara rada, pokretanje raznih modula, prikupljanje podataka te njihovu statističku analizu, a čak i za grafičko predstavljanje, uključivši animaciju. Ništa ne radi bez programiranja u C++ programskom jeziku (i prevođenja) i/ili skripata u programskom jeziku Python. Instalacija NS-3 je znatno poboljšana u odnosu na NS-2, tj. ima mnogo manje međuzavisnosti i podešavanja sistemskih varijabli i grešaka pri prevođenju izvornog u izvršni kôd (te potrebe njihova rješavanja). NS-3 je simulator besplatnog otvorenog kôda te se izdaje pod GPL licencom. Oba simulatora mogu raditi na distribuirani način. NS-3 je trenutno podržan od američke i francuske vlade preko NSF1 i INRIA2. Dokumentacija NS-3 simulatora je nevjerojatno detaljna i bogata. U nju je uloženo toliko energije i vremena da se je za to vrijeme, energiju i znanje moglo načiniti jedno, makar asketsko sučelje u kome bi se moglo podešavati inicijalne postavke i pokretati simulacije i animacije te statistički prikazi i analize. Za pretpostavljati je da je to obilna

1 National Science Foundation (engl.). 2 French national institute for research in computer science and control (engl.).

Tedo Vrbanec FOI, 2010. 127 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta dokumentacija koja financijerima „dokazuje“ da se ozbiljno radi. Poznato je da je kvalitetno dokumentiranje i izvještavanje jedan od glavnih uvjeta za davanje pozitivnog mišljenja o projektu te nastavka njegova financiranja. Samo za početak rada u NS-3 potrebno je proučiti Tutorial, koji na 99 stranica prepunih naredbi, skripata i detalja objašnjava najnužnije osnove. Nakon toga se očekuje da korisnik prouči priručnik (engl. Manual) na 162 stranice za upoznavanje sa sustavom i njegovim mogućnostima, te prije nego krene u samostalno korištenje, još dodatnih 25 stranica dokumenta Testing and Validation. Konačno, da bi se simulator koristio u punoj mjeri, potrebno je proučiti dokumentaciju pod nazivom Doxygen: Documentation of the public APIs of the simulator i Wiki.

OMNET++

OMNeT++ (http://www.omnetpp.org/) je proširiva i modularna razvojna okolina, s podrškom za programiranje u C++ programskom jeziku i temeljena na Eclipse grafičkom sučelju [169], (slika 40, str. 129). Iako netipični simulator P2P sustava, ovdje je uključen iz više razloga. U krugovima razvijatelja i korisnika P2P simulatora smatraju ga korisnim alatom za proučavanje ponašanja mreža. Drugi razlog su njegova obilježja: podrška za simulacije komunikacijskih mreža u stvarnom vremenu, emulaciju mreža s repovima čekanja, mogućnost evaluacija performansi, podrška za alternativne programske jezike poput Jave ili C# i integracija baze podataka. OMNeT++ je otvorenog kôda i besplatan za edukacijsku i neprofitnu uporabu te „ubrzano postaje omiljena simulacijska platforma za znanstvena istraživanja u svijetu.“[169] Za komercijalnu1 uporabu nužno je platiti licencu. Uglavnom se koristi za simulacije mreže. Podržava sljedeće modele podmreža: TCP, UDP, IP, Ethernet, MPLS, RSVP, 802.11. U domeni P2P simulacija, može raditi sa po 1000 čvorova te izvršavati distribuirane simulacije [170] na mnogobrojnim računalima. Statistika se može izvući skriptiranjem, ali nema zasebnog modula koji bi elegantno preuzeo funkciju prikupljanja, obrade i prezentacije statističkih podataka.

1 Za komercijalnu je uporabu načinjena modificirana verzija, te otvoreno drugo web sjedište na http://www.omnest.com/.

Tedo Vrbanec FOI, 2010. 128 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 40: Grafič ka radna okolina OMNeT++ Izvor: -, OMNeT++ Community Site, OMNeT++ Community, 28. siječ anj 2010., , (23. veljač a 2010.)

OVERSIM

Na temelju OMNeT++ nastala je razvojna okolina OverSim, „prilagodljiva simulacijska okolina za prekrivajuće mreže“ [102] koja uključuje nekoliko strukturiranih (Chord, Kademlia) i nestrukturiranih P2P protokola (Gia). OverSim (http://www.oversim.org/) je razvijen pri Universität Karlsruhe, a pod pokroviteljstvom Njemačkoga ministarstva obrazovanja i istraživanja. Simulator se još uvijek aktivno razvija te ima sljedeća svojstva [171]:

• Fleksibilnost. Mogućnost simulacije mnoštva strukturiranih i nestrukturiranih P2P mreža: Chord, Pastry, Bamboo, Koorde, Broose, Kademlia, Gia, NICE, Vast i otvorene MMOG1 mreže, zahvaljujući modularnom dizajnu i standardnih API sučelja. Ponašanje modula se lako podešava specifikacijom parametara u tekstnoj konfiguracijskoj datoteci.

1 MMOG = engl. Massively Multiplayer Online Game.

Tedo Vrbanec FOI, 2010. 129 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

• Interaktivno grafičko sučelje (GUI). Koristi OMNeT++ grafičko sučelje koje vizualizira mrežnu topologiju, poruke i stanja varijabli čvorova (poput tablice usmjeravanja).

• Modeli prekrivajuće mreže. Simulator koristi potpuno prilagodljiv model mrežne topologije s realističkim prikazom brzina veza, kašnjenja paketa, gubitka paketa te alternativni model koji se može brzo koristiti, poput već gotovog predloška prekrivajuće mreže.

• Skalabilnost. Simulator je u stanju simulirati oko 10 000 čvorova na prosječnom osobnom računalu, a uspješno su provedene simulacije do 100 000 čvorova.

• Osnovna prekrivajuća klasa. Ova generička klasa osigurava implementaciju strukturiranih P2P protokola putem RPC1 sučelja te sadrži standardna API sučelja.

• Različiti modovi usmjeravanja. Protokoli usmjeravanja temeljeni na ključu2 koji na odgovarajući način koriste osnovnu prekrivajuću klasu, podržavaju pet načina usmjeravanja: iterativno, iscrpno-iterativno, polu-rekurzivno, potpuno rekurzivno i izvorišno usmjereno rekurzivno.

• Ponovno korištenje simulacijskog kôda. Različite implementacije protokola prekrivajuće mreže mogu se koristiti za stvarne mrežne aplikacije – na taj način istraživači mogu provjeriti ispravnost simulacijskih rezultata uspoređujući ih s rezultatima testiranja u stvarnom svijetu.

• Modeli odljeva čvorova. Simulator podržava različite modele odljeva čvorova3.

• Statistika. Simulator prikuplja statističke podatke o poslanom, primljenom i proslijeđenom mrežnom prometu po čvoru, te o uspjehu ili neuspjehu dostave paketa između čvorova. Prikupljeni se podaci mogu i grafički prikazati. Slika 41 na str. 131 prikazuje sučelje OverSim simulatora [173].

1 Engl. Remote Procedure Call (RPC) je tehnika međuprocesne komunikacije koja omogućuje jednom računalnom programu pokretanje potprograma ili procedure u drugom adresnom prostoru, najčešće na drugom računalu, bez da programer takvu akciju/rutinu posebno isprogramira u detalje. [172] 2 Engl. Key-based routing. 3 Engl. Churn model.

Tedo Vrbanec FOI, 2010. 130 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 41: OverSim suč elje Izvor: -, OverSim, Wikipedia - the free encyclopedia, Wikimedia Foundation, Inc., 10. prosinac 2009., , (9. ožujak 2010.)

J-SIM

J-Sim1 (http://j-sim.cs.uiuc.edu/, http://sites.google.com/site/jsimofficial/) je [175] složena simulacijska okolina, temeljena na komponentama kao temeljnim entitetima (poput COM/COM+, JavaBeans ili CORBA, s tom razlikom što su ovdje komponente autonomne te predstavljaju programsku realizaciju integriranih krugova [176]). Arhitektura autonomnih komponenata oponaša arhitekturu integriranih krugova. Ponašanje autonomnih komponenata definira se, pojedinačno oblikuje, implementira, testira i raspoređuje u programski sustav, koji pak je sastavljen od pojedinačnih komponenti na sličan način kao što je neki dio sklopovlja sastavljen od integriranih sklopova. Komponente se mogu uključivati u programski sustav čak i tijekom njegova rada (izvršavanja simulacije). Za potrebe modeliranja i simulacija mreža, ponad arhitekture autonomnih komponenti definiran je model mreže s prespajanjem paketa. Model definira generičku strukturu čvora koji može biti host ili router te generičke mrežne komponente. Oni se zajedno koriste kao

1 Stari naziv ovog simulatora je JavaSim.

Tedo Vrbanec FOI, 2010. 131 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta temeljne klase kojima se implementiraju protokoli na različitim razinama. Model oponaša uobičajene atribute mrežnih entiteta današnjeg Interneta kao best-effort2 mreže, te je tako dovoljno općenit da se njime mogu realizirati i druge arhitekture3. J-Sim je načinjen u programskom jeziku Java, a u svojoj integriranoj razvojnoj okolini ima komponentu – podršku za skriptne jezike. Stoga je u J-Simu moguće (i nužno) koristiti , Tcl i Python. Simulacije se odvijaju u stvarnom vremenu. Dokumentacija je vrlo dobra, ali je korištenje vrlo zahtjevno u pogledu potrebnih znanja i sposobnosti korisnika.

4.7 USPOREDBA SIMULATORA

Teško je zamisliti da se jedan programski zadatak može na toliko različitih načina realizirati u programsko rješenje. Možda usporedba neće biti umjesna ni potpuno prikladna, ali situacija autora podsjeća na onu s koncepcijom izrade računala prije Johna von Neummana (1903.-1957.) kada je svaki projektni tim koncipirao računalo na svoj način. Tek je John von Neumann razradio model koji se uglavnom i dan-danas koristi. Zbog različite koncepcije i izvedbe simulatora, usporedba rada postojećih P2P simulatora naprosto nije bila moguća. Jedina nit koja povezuje većinu P2P simulatora je prevladavajuće korištenje programskog jezika Java kod izvedbe programskih rješenja. Iz tablice 15 može se izvesti usporedba broja i udjela pojedinih programskih jezika (slika 42): Java se koristi u 65%, C++ u 29%, a C# u 6% slučajeva. Ulazne se veličine u simulatore unose na sve moguće načine:

• korištenjem uređivača običnog teksta (engl. text editor) neposrednim unosom u konfiguracijske datoteke,

• putem xml datoteka na gornji način ili posebnim uređivačima xml datoteka,

• pomoću cjevovoda (engl. pipe) gdje se u simulator uvode podaci generirani drugim programima,

• posredstvom grafičkog sučelja,

• odabirom gotovih predložaka i

• kombinirano (poput inicijalnog postavljanja parametara posredstvom grafičkog sučelja te dodatno korištenjem uređivača običnog teksta).

2 Najbolje nastojanje. 3 Te druge arhitekture mogu primjerice biti IETF arhitektura diferenciranih usluga [174], bežična mrežna arhitektura za mobilne uređaje ili mrežna arhitektura temeljena na optici.

Tedo Vrbanec FOI, 2010. 132 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Zanemarimo li nakratko rad P2P simulatora te ga, pojednostavljeno predstavimo crnom kutijom, i usredotočimo li se na rezultate simulacija, ovdje je rezultat jednako porazan odnosno neusporediv. Rezultati rada P2P simulatora, (izlaz iz crne kutije), dolaze u sljedećim pojavnim oblicima:

• gomilom manje ili više (ne)razumljivih brojki ispisanih u komandno-linijskom sučelju (terminalu kod Linuxa i/ili Command Promptu kod Windowsa),

• ispisom gornjih brojki u datoteku,

• izlaznim cjevovodom kojeg treba nekuda usmjeriti,

• grafički prikazi rada,

• grafički prikazi statističkih podataka i

• kombinirano.

11 12

10 a r o t 8 a l u m i s

P 5 2 6 Udio P Broj P2P simula- o i

d tora u

i

j

o 4 r B

1 2 64,71% 29,41% 5,88%

0 Udio Java C++ C# Korišten programski jezik

Slika 42: Broj i udio korištenih programskih jezika

Zbog različite izvedbe simulatora nije bilo moguće izvesti istu simulaciju nad istim parametrima. Time se neke bitnije funkcionalnosti nisu mogle ocijeniti, kao na primjer simulacija transportnog sloja koja se ne bi smjela zanemariti zbog velikog utjecaja na tok informacija i paketa među čvorovima. Simulatori uglavnom daju rezultate koji su teško razumljivi i nejasni ili nebitni. Slaba ili nikakva dokumentacija je često slaba točka P2P

Tedo Vrbanec FOI, 2010. 133 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta simulatora te je bilo prilično otežano ispitivanje čak i onih opcija koje su navedene u dostupnoj dokumentaciji. Kada i postoji mogućnost distribuirane simulacije, nije jasno kako bi se ona trebala izvesti. Za razumljiviji prikaz simulacije određene topologije mreže te prikaz potrebnih rezultata, bilo bi dobro da za svaki simulator postoji grafičko korisničko sučelje koje bi korisnicima, koji nisu ranije upoznati sa izradom i radom simulatora, olakšalo analizu i interpretaciju rezultata, a kojeg često nema. S obzirom da je simulacija P2P sustava bitan dio procjene funkcionalnosti nekog P2P protokola ili aplikacije, koje je zbog velikih skalabilnosti vrlo teško ocijeniti pokusom u stvarnim uvjetima, postoji dosta mjesta za poboljšanje mehanizama postojećih simulatora, kao i za izvedbu novih sa sveobuhvatnim funkcionalnostima. Ono što je takvim okolnostima moguće je zapravo nus-produkt pripreme za eksperimentalni dio rada: usporedni prikaz obilježja ispitanih simulatora prikazan u tablici 16, na str. 135, odnosno svih P2P simulatora (do kojih je autor mogao doći).

Tedo Vrbanec FOI, 2010. 134 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 16: Obilježja ispitanih simulatora

Arhitektura Korisnost Simulator Skalabilnost1 Statistika Podmreža2 Ograničenja Struktura Distr.3 Dokumentacija GUI diskretni događaji u manji skup prsten, slučajne veze, power NeuroGrid ne slaba ne 300 000 samo CLI strukturiranoj P2P mreži podataka law diskretni događaji u FreePastry ne vrlo detaljna ne 100 000 nepoznato4 nije modelirano nemogućnost pokretanja strukturiranoj Pastry mreži simulacije temeljene na događaju i simulacije modul za PeerSim, modul SG-1 (super-čvorovi) temeljene na ciklusu u ne vrlo dobra ne 1 000 000 statističko nemogućnost pokretanja RangeSim modul T-Man (rangiranje) strukturiranoj i izvještavanje nestrukturiranoj P2P mreži teško utvrdiva zadovoljavajuća; diskretni događaji u prsten, slučajne veze, zvijezda, skalabilnost, GnutellaSim ne pretežno na da nepoznato vrlo detaljno Gnutella mreži raspršeno podešavanje ograničeno njemačkom jeziku GUI sučeljem diskretni događaji u osnovna GnucNS ne minimalna da 1 000 mreža super-čvorova previše pojednostavljeno Gnutella mreži razina p2psim diskretni događaji ne slaba ne 3 000 neupotrebljiva nepoznato nemogućnost pokretanja Naive, NaiveTopo, FairTopo, Narses kontinuirani događaji ne slaba ne 600 ne nemogućnost pokretanja SafeFairTopo Inet Topology, Georgia Tech vrlo dobra; vrlo složen za instalaciju NS2 diskretni događaji da ne 10 000 da Internetwork Topology, Tiers raštrkana i uporabu Topology, BRITE

1 Maksimalni broj čvorova. 2 Komunikacijska podmreža. 3 Distribuirana simulacija. 4 U dokumentaciji nema spomena, a u praksi simulator ne radi. Stoga je obilježje nemoguće utvrditi.

Tedo Vrbanec FOI, 2010. 135 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tablica 16: Obilježja ispitanih simulatora

Arhitektura Korisnost Simulator Skalabilnost Statistika Podmreža Ograničenja Struktura Distr. Dokumentacija GUI izuzetno vrlo složen za instalaciju NS3 diskretni događaji da kvalitetna, obilna i da 1 000 da Bus, Wireless i uporabu sređena vrlo složen za instalaciju OMNeT++ diskretni događaji da izvrsna da 1 000 da, otežano nije definirano i uporabu Simple, SingleHost, INET OverSim diskretni događaji da dobra da 10 000 – 100 000 da vrlo složen za instalaciju [102] slaba, vrlo složen za instalaciju J-Sim diskretni događaji da vrlo dobra ne1 da nije definirano nedefinirana i uporabu nije definirano, moguće s nemogućnost instalacije i PlanetSim diskretni događaji da loša da 100 000 ne dodacima pokretanja PeerfactSim dobra, ali nemogućnost instalacije i diskretni događaji ne da2 1 000 ne nije definirano .KOM nepotpuna pokretanja nije definirano, moguće s GPS diskretni događaji ne minimalna da nepoznata ne nepoznato dodacima

1 Postoji opcija uključivanja programske podrške treće strane pod nazivom gEditor. 2 Rudimentalno.

Tedo Vrbanec FOI, 2010. 136 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

4.8 ZAKLJUČAK

S obzirom na veliku količinu prometa koja se odvija putem P2P mreža, na tendenciju njegova rasta te na njegovu sve veću važnost u pogledu znanstveno-poslovne primjene, razvoj P2P protokola, aplikacija i mreža je neminovan. Kao jedna faza testiranja poželjne su simulacije P2P simulatorima. Dakle, postoji potreba za jednom klasom aplikacija koje nazivamo P2P simulatori, koja je vrlo specifična. Na temelju dugotrajnog, temeljitog i detaljnog ispitivanja dvije domene: P2P sustava i P2P simulatora, zaključak je da su postojeći P2P simulatori tako loših svojstava da je izrada istraživanjem predviđene rang-liste P2P simulatora (na temelju kriterija usporedbe i vrednovanja) besmislena. Umjesto toga, bolje je napraviti model P2P simulatora kakav bi trebao biti. Postojeći simulatori uglavnom izgledaju kao poluproizvodi, nezavršeni projekti, projekti od kojih se uglavnom i odustalo. Projekti koji idejno izgledaju jako dobro, ali je problemsko područje ili pretrusno za algoritamsko rješavanje problema ili je napor koji je potrebno uložiti neusporediv s potencijalnom koristi. Neki su od takvih P2P simulatora nastali u sklopu projekata koji su financirani od strane država na posredan način, preko znanstvenih zaklada i instituta. Ipak, autori su redom, nakon isteka predviđenog vremena trajanja projekta, „zaboravljali“ na nastavak razvoja P2P sustava ostavljajući samo praznu dokumentaciju za (bivše) financijere te eventualne prototipove P2P simulatora čiji rad ne stvara korisne simulacije. Do nekih se simulatora ne može ni doći, čak ni neposrednim kontaktom s autorima, prema uputama s njihovih web stranica. Generički P2P simulator možda je i nemoguće načiniti. Očito je da to istraživačima nije pošlo za rukom već niz godina. Svakako je njegova izrada preriskantan i prezahtjevan posao za pojedinca. Takav projekt može si priuštiti samo organizacija s popriličnim viškom ljudskih resursa. Pojedincu ostaje da na temelju prikupljenih podataka i generiranih informacija pokuša napraviti model P2P simulatora, odnosno, što takav alat treba biti u stanju raditi i koji su korisnički zahtjevi prema njemu.

Tedo Vrbanec FOI, 2010. 137 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

5 MODEL P2P SIMULATORA

P2P simulatori kao vrsta programske podrške imaju, što se tiče njihovog projektiranja i izrade, nezgodan skup obilježja:

• problemsko područje ima mali broj potencijalnih korisnika,

• za njihovu je izradu potrebno pored poznavanja informacijskog inženjerstva i izvrsnog znanja i umijeća programiranja, poznavanje više problemskih domena (slika 43):

◦ P2P sustavi (protokoli, mreže, aplikacije),

◦ računalne mreže i distribuirani sustavi,

◦ simulacije i simulatori.

Slika 43: Problemske domene P2P simulatora

„Mali broj potencijalnih korisnika“ obuhvaća razvijatelje P2P protokola i aplikacija te edukacijske ustanove. To ima dvije posljedice. Prva je velika jedinična cijena koštanja izrade P2P simulatora koju si mogu priuštiti samo financijski snažni subjekti. Druga posljedica je postojanje P2P simulatora koji su redom ograničene funkcionalnosti: tolike i takve da odgovaraju za simulaciju neke manje ili više ograničene situacije/problema, a najčešće jako ovise o određenoj konfiguraciji parametara operacijskog sustava na kojem se koriste. „Poznavanje više problemskih domena“ ima za posljedicu da je za izradu P2P simulatora potrebna suradnja više timova specijalista te u odnosu na probleme jedne domene, duže vrijeme njegove izrade. To povlači cjenovni trošak koji je teško pravdati. Subjektima koji žele razviti ili modificirati postojeći P2P protokol, pa makar i raspolagali

Tedo Vrbanec FOI, 2010. 138 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta dostatnim sredstvima za razvoj P2P simulatora, zanimljivije je implementaciju provoditi u tri koraka: 1. laboratorijski, s nekoliko namjenskih ili virtualnih računala, 2. zakupiti virtualne poslužitelje i pripadni komunikacijski pojas, pa implementaciju (prototipove i testne verzije) isprobavati neposredno, na živom sustavu, 3. konačno, kada se postigne željeni rad protokola, može se skalabilnost ispitati u testnim mrežnim okolinama (poput PlanetLab i Emulab). Ovo razmatranje zaključujem spoznajom da potrebu za P2P simulatorom imaju, pored raznoraznih istraživača, isključivo dva tipa „pravih“ korisnika: edukacijske ustanove gdje služi kako bi se studentima lakše objasnio princip rada P2P sustava te programerske kuće koje su, između ostalog, specijalizirane za izradu P2P protokola kao temeljnog elementa za distribuirane sustave pohrane, distribucije ili sigurnosne pohrane podatkovnih sadržaja. Proučavanje P2P sustava i P2P simulatora rezultira prijedlogom koncepcijskog modela P2P simulatora koji će biti predstavljen u nastavku. Model se opisuje sa stajališta arhitekture takvog sustava, a ne sa stajališta programerskog izvršenja, odnosno programiranja. U modelu su obuhvaćena sva znanja autora o nedostacima i ograničenjima postojećih programskih sustava (P2P simulatora), „pretočena“ u optimalni model sustava koji zadovoljava potrebe korisnika. Teorijski, kad bi se takav sustav na temelju zahtjeva iz modela pretvorio u programski kôd - trebao bi raditi.

5.1 FUNKCIONALNI ZAHTJEVI

Funkcionalni zahtjevi opisuju što programski sustav P2P simulatora, mora raditi, tj. koje funkcionalnosti mora imati:

• Grafičko korisničko sučelje.

• Parametri pohranjeni (ne ukôdirani) u jednostavnom obliku (običan tekst ili XML) u datoteku.

• Podešavanje parametara:

◦ Mogućnost aplikacijski vođenog podešavanja putem čarobnjaka.

◦ Preko grafičkog sučelja.

◦ Preko ugrađenog ili vanjskog uređivača teksta.

• Predlošci i njihovo jednostavno uključivanje u postavke:

◦ Postojanje predložaka za postavljanje i podešavanje mrežnog sloja.

Tedo Vrbanec FOI, 2010. 139 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

◦ Postojanje predložaka za postavljanje i podešavanje protokola.

◦ Postojanje predložaka za postavljanje i podešavanje ponašanja korisnika.

◦ Mrežni, protokolarni i korisnički predlošci trebaju se moći uključiti u simulaciju pojedinačno, grupno, sveukupno ili relativno (u postotku, tj. da se može primijeniti na određeni dio populacije).

• Statistički podaci:

◦ Predložak ili predlošci najčešće potrebnih statističkih podataka, funkcija i deriviranih veličina i testova.

◦ Mogućnost korisnika da definira koje podatke treba pratiti tijekom simulacije.

◦ Prikupljanje statističkih podataka.

◦ Prikaz statističkih podataka u obliku:

▪ tablica i

▪ grafičkih prikaza.

◦ Izvoz statističkih podataka kako bi bila moguća daljnja proizvoljna statistička analiza, i to:

▪ u standardne formate uredskih paketa (tablične kalkulatore),

▪ u formate specijaliziranih statističkih alata poput SPSS-a.

• Mogućnost distribuirane simulacije. Funkcionalni su zahtjevi grafičkim putem prikazani na slici 44, str. 141.

Tedo Vrbanec FOI, 2010. 140 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 44: Funkcionalni zahtjevi za P2P simulator

Tedo Vrbanec FOI, 2010. 141 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

5.2 NEFUNKCIONALNI ZAHTJEVI

Nefunkcionalni zahtjevi obuhvaćaju atribute kvalitete i ograničenja na sustav (prikazani na slici 45, str. 143):

• Slojevitost izrade - minimum četiri sloja1: mrežni, protokolarni, aplikacijski i korisnički.

• Mogućnost dodavanja programskih proširenja (engl. plug-in).

• Višedretveni rad i korištenje više procesora.

• Za izradu je potrebno koristiti programski jezik koji maksimalno iskorištava resurse (u ovom slučaju procesorsko vrijeme i memoriju) računala na kojima se simulacija odvija.

◦ U dosadašnjem razvoju P2P simulatora korišteni su programski jezici2 Java (65%), C++ (29%) i C# (6%).

◦ Java se nije pokazala kao dobro rješenje, jer mala promjena Java razvojne okoline (engl. Java Development Environment) ili Java okoline za izvršavanje kôda (engl. Java Runtime Environment), u praksi rezultira nemogućnošću pokretanja P2P simulatora.3

• održavanje P2P simulatora

◦ mogućnost ispravljanja kritičnih programskih pogrešaka putem zakrpa,

◦ dodavanje novih funkcionalnosti,

• portabilnost – mogućnost instalacije P2P simulatora na što veći broj operacijskih sustava,

• dobra dokumentacija – P2P simulator treba imati korisnički priručnik, upute za instalaciju, primjere i sl.,

• višejezičnost - višejezičnost korisničkog sučelja i dokumentacije,

• skalabilnost P2P simulatora – mogućnost simulacije minimalno tisuću čvorova.

1 Kod slojevitosti je potrebno voditi računa i o tome da prevelik broj slojeva usporava programski sustav, s obzirom da se u komunikaciji između slojeva troše procesorski ciklusi. 2 Detaljnije u poglavlju 4.7 Usporedba simulatora na str. 132 i slici 42 na str. 133. 3 Iako vičan sistemskim poslovima, autoru ovog rada nije uspijevalo pokrenuti mnoge P2P simulatore. Stoga je angažirao profesionalca kojem je rad i instalacija Java programa svakodnevni posao. Rezultat je bio isti.

Tedo Vrbanec FOI, 2010. 142 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 45: Nefunkcionalni zahtjevi za P2P simulator

Tedo Vrbanec FOI, 2010. 143 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

5.3 KONCEPCIJSKI MODEL

Modeliranje složenih modela je koncepcijski zdravo ukoliko je model slojevit. Slojevitost omogućava lakšu percepciju glavnih cjelina i lakšu modifikaciju programskog sustava. Ovaj model predviđa četiri sloja – podmodela, te grafičko korisničko sučelje koje komunicira sa svim slojevima, kao što je prikazano na slici 46:

• model korisničkog ponašanja,

• model aplikativnog moderatora,

• model protokola i

• model mrežnog sloja.

Slika 46: Koncepcijski model P2P simulatora (a)

Slojevi međusobno komuniciraju preko programskih sučelja, a prema korisniku preko grafičkog korisničkog sučelja, pri čemu se komunikacija odvija između susjednih slojeva na način kako je to prikazano grafičkim prikazima na slikama 46 i 47.

Tedo Vrbanec FOI, 2010. 144 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 47: Koncepcijski model P2P simulatora (b)

Tedo Vrbanec FOI, 2010. 145 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

5.3.1 MODEL MREŽNOG SLOJA

Mrežni sloj predstavlja računala – čvorove mreže te komunikacijske kanale kojima su povezani. S obzirom da postoji ne-velik konačan broj mogućih oblika povezanosti nekog računala u mrežu, recimo Internet, koji služi kao komunikacijska podmreža, moguće je i poželjno stvaranje odgovarajućih predložaka. Vrste mogućih veza na Internet su:

• modem,

• ISDN,

• ADSL,

• DSL,

• svjetlovodna korisnička linija (engl. Fiber in the Loop – FITL),

• kabelska mreža (koaksijalni ili optički vodovi),

• satelitski pristup,

• posredovanjem mobilnih operatera,

• širokopojasni bežični pristup WIMAX,

• bežične mreže temeljene na IEEE 802.11 tehnologiji. Vrsta operacijskog sustava utječe na obilježja računala kao mrežnog čvora. Stoga bismo i njih mogli razdvojiti u vrste:

• računala s ograničenim brojem istodobnih veza (poput ne-poslužiteljskih inačica Windows OS-a koje imaju ograničenje od deset istodobnih veza),

• računala bez ograničenja broja istodobnih veza (ograničenje uvijek postoji, ali zbog ograničenih sklopovnih mogućnosti, a ne zbog umjetnih ograničenja programske podrške). Te dvije skupine mogu formirati 10x2=20 tipova čvorova odnosno pripadnih predložaka (slika 48, str. 148), a korisnik simulatora bi trebao moći odabrati:

• broj čvorova pojedinog predloška koje uključuje u simulaciju,

• ukupni broj čvorova u (pod)mreži te relativni udio (u postocima) pojedinih predložaka,

• stvaranje podmreža na temelju gornja dva načina,

• stvaranje mreže1 neposrednim odabirom (prva dva načina) i/ili povezivanjem podmreža u konačnu mrežu,

1 „Mreža“ ovdje ima smisao komunikacijske podmreže u simulaciji.

Tedo Vrbanec FOI, 2010. 146 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

• korisnik bi pored gornjih mogućnosti trebao imati mogućnost pokretanja čarobnjaka koji bi ga putem grafičkog sučelja vodio kroz podešavanje mrežnog sloja. Konačno, jednom završeno podešavanje mrežnog sloja mora se moći naknadno mijenjati:

• putem grafičkog sučelja,

• putem čarobnjaka,

• neposrednim mijenjanjem tekstne ili XML konfiguracijske datoteke. Za potpuniju točnost modela, ali i znatno složeniju realizaciju P2P simulatora, mrežni se model može dopuniti mogućnošću usmjeravanja (engl. routing).

Tedo Vrbanec FOI, 2010. 147 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 48: Model mrežnog sloja P2P simulatora

Tedo Vrbanec FOI, 2010. 148 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

5.3.2 MODEL PROTOKOLA

U prvoj polovini 2010. godine, aktivne su sljedeće P2P mreže i pripadni protokoli:

Tablica 17: Aktivne P2P mreže i pripadni protokoli

P2P mreža P2P protokol Strukturiranost Gnutella 1 Gnutella Gnutella 2 FastTrack FastTrack Edonkey Edonkey nestrukturirani Direct Connect Direct Connect OpenFT OpenFT BitTorrent BitTorrent DHT BitTorrent Kad Kademlia strukturirani FreeNet FreeNet

Upućenijem čitatelju može biti sumnjivo zašto ovdje nisu navedene i druge aktivne mreže, poput iMesh, LimeWire i podosta drugih. Razlog je taj što one nisu „prave“ P2P mreže, odnosno nisu originalne mreže (nešto novo), već se samo tako deklariraju – njihovi klijenti se spajaju na postojeće mreže, najčešće Gnutellu i BitTorrent. Sve prikazane P2P protokole, odnosno njihove ulaze, izlaze, akcije, poruke, algoritme obrade i sve druge detalje koje ih prate (slika 49, str. 150), potrebno je zasebno upakirati u zasebne predloške – module. Potrebno je i ostaviti prostora za implementaciju novih P2P protokola, putem programskih, modularnih proširenja. Nema sumnje da je to velika zadaća s programerskog stajališta, posebno u svijetlu da su neki P2P protokoli vlasnički kôd ili kôd (više) ne postoji te je potrebno reverznim inženjeringom implementirati sve ili barem najbitnije mogućnosti takvih protokola, što nikada nije bio lagani zadatak.

Tedo Vrbanec FOI, 2010. 149 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 49: Bitne sastavnice predloška P2P protokola

5.3.3 MODEL APLIKATIVNOG SLOJA

Model aplikativnog sloja može se nazvati i aplikativni moderator, zbog nekih njegovih funkcionalnosti koje uključuju modifikaciju podrazumijevajućih vrijednosti P2P protokola. Aplikativni sloj ima sljedeće funkcije (slika 50, str. 151):

• moderiranje mogućnosti P2P protokola na aplikacijskoj razini – razna ograničenja i uvjeti koje definiraju ili mogu definirati P2P klijenti, poput:

◦ praćenje i održavanje zadanog omjera preuzimanja i predaje sadržaja,

◦ brzina rezerviranog komunikacijskog pojasa za predaju sadržaja,

◦ broja otvorenih veza za predaju sadržaja,

◦ količina podatkovnog sadržaja koji se nudi za dijeljenje drugim korisnicima,

◦ količina diskovnog prostora rezervirana za distribuiranu pohranu podatkovnih sadržaja drugih korisnika,

◦ minimalno vrijeme prisutnosti korisnika u P2P mreži i to po danu, tjednu, mjesecu ili sveukupno vrijeme participacije u sustavu i

◦ sva druga moguća ograničenja koja postoje u sadašnjim klijentima ili se predviđaju u budućim P2P klijentima,

• istovremeno razdvaja i integrira korištene protokole (iz modela protokola) i korisničko ponašanje (iz modela korisničkog ponašanja),

• sprečava nastanak nemoguće kombinacije uvjeta i ograničenja.

Tedo Vrbanec FOI, 2010. 150 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 50: Funkcije aplikativnog moderatora

5.3.4 MODEL KORISNIČKOG PONAŠANJA

Korisnici su ljudi sa svojim različitostima, navikama, običajima, stavovima, ... Moguće ih je kategorizirati u 5 kategorija (slika ):

• idealni korisnik

◦ ne sprečava druge korisnike u korištenju svojih resursa,

◦ sve što preuzima, dugo vremena (tjednima) ostavlja u dijeljenom prostoru,

◦ ima veliku brzinu komunikacijskog kanala u oba smjera i flat-rate pristup,

◦ ima veći broj otvorenih izlaznih simultanih veza,

• optimalni korisnik

◦ ima barem prvo i još jedno obilježje idealnog korisnika,

◦ ima sva obilježja ujednačenog korisnika,

• ujednačen korisnik

◦ barem polovinu vremena tijekom dana/tjedna/mjeseca je on-line i na P2P mreži,

◦ ima omjer preuzetog i predanog sadržaja približno u ravnoteži,

◦ ima barem 128kbps brzinu predaje sadržaja,

Tedo Vrbanec FOI, 2010. 151 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

• minimalistički korisnik

◦ koristi sve resurse P2P sustava maksimalno,

◦ nudi i daje vlastite resurse minimalno,

◦ koristi isti korisnički račun,

• parazitski korisnik

◦ uzima iz P2P sustava sve što može, a kada mu se zabrani pristup otvara novi korisnički račun,

◦ poznat je pod engl. nazivom free rider.

Slika 51: Modeli korisnič kog ponašanja

Tedo Vrbanec FOI, 2010. 152 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

5.4 ER MODEL

Prethodno navedene detalje P2P simulatora teško je ali potrebno pretočiti i u formalni model. Ipak, tek tijekom njegove izrade se isti može dublje raščlaniti i detaljizirati. Početnu situaciju koja predstavlja temelj za potencijalnu izradu P2P simulatora prikazuje ER model na slici 52 (str. 154). Daljnjom razradom koja je moguća spiralnim razvojem počevši od prototipa stvarnog P2P simulatora, model bi se dopunjavao i mijenjao. Svakako bi se proširio za atribute, akcije i odnose, funkcije i procese, a tada bi bilo prikladno UML modeliranje. Na žalost, čim se model više razrađuje, dublje se upušta u programsko inženjerstvo, a model bez podrške stvarnog programerskog zahvaćanja u problematiku postaje sve neprecizniji. Kako bi prikazani model imao što veću istinitost, autor rada smatra da na ovoj konceptualnoj razini modela, nije poželjna daljnja detaljizacija - uvođenje atributa ili UML modeliranje.

Tedo Vrbanec FOI, 2010. 153 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 52: ER model P2P simulatora

Tedo Vrbanec FOI, 2010. 154 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

6 ZAKLJUČAK I PREPORUKE ZA DALJNJE ISTRAŽIVANJE

Kada su osobna računala ušla u masovnu uporabu, putem lokalne mreže su se povezivala na središnje poslužitelje koji su u to doba bili značajno snažniji od osobnih računala. Stoga su se značajnije obrade podataka izvodile na središnjim računalima. Od tada do danas, snaga osobnih računala se stalno povećavala, rasla je njihova mogućnost lokalne obrade podataka, a i sklonost korisnika i aplikacija prema lokalnoj obradi. Ujedno je u stalnom porastu broj Internetom povezanih osobnih računala te njihova brzina veze. Posljedica toga je pojava protokola, aplikacija i sustava koji omogućavaju međusobno neposredno povezivanje i suradnju osobnih računala, zaobilazeći poslužitelje. Internet se drastično mijenja. Ranije pasivni korisnici koji koriste Internet asimetrično, većinom koristeći elektroničku poštu i pregledavajući web stranice, sada postaju aktivni, sudjelujući svojim resursima: datotekama, spremištima podataka i procesnom moći, u velikim sustavima, ponegdje stvarajući distribuirane sustave raznih namjena i virtualna super-računala. Korisnici sada ne samo da koriste Internet, već u njemu aktivno sudjeluju kao nuditelji usluga. Pružatelji Internet pristupa teško pokrivaju ovu situaciju, jer je njihova komunikacijska podmreža koncipirana za asimetrični način rada korisnika. Povrh svega, problemi legalnosti podatka koji se razmjenjuju u sustavima istovrsnih entiteta, nisu zanemarivi, te dodatno kompliciraju odnos korisnika i davatelja Internet pristupa. Sustavi istovrsnih entiteta, više od desetljeće nakon njihova začetka 1999. godine, prevalili su velik razvojni put. U njihov razvoj uloženo je vrlo mnogo resursa: vremena, truda, znanja i financijskih sredstava. Napredak je impresivan. Ipak, još je jako puno prostora za razvoj. U ovom odlomku je načinjen pokušaj sublimacije sadašnjih i budućih aktivnosti u primjeni i istraživanjima [51]. Sadašnji razvoj sustava istovrsnih entiteta Pored obaveznih funkcionalnosti:

• distribuirane pohrane i razmjene datoteka i

• podrške za trenutno dopisivanje, suvremeni sustavi istovrsnih entiteta uglavnom se fokusiraju na

• razvoj novih oblika komunikacije,

• Internet telefoniju,

• streaming audio i video sadržaja,

Tedo Vrbanec FOI, 2010. 155 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

• skalabilan i prilagodljiv sustav imenovanja,

• osobnu komunikaciju poput elektroničke pošte,

• međuorganizacijsko dijeljenje resursa te

• usmjeravanje ovisno o kontekstu odnosno sadržaju. Budući razvoj sustava istovrsnih entiteta odvija se u sljedećim smjerovima:

• video konferencije,

• distribucija edukativnih sadržaja,

• širenje sustava istovrsnih entiteta na mobilne, ad-hoc mreže,

• usluge ovisne od konteksta te

• pouzdanost mrežnog računalstva. Sadašnji nedostaci sustava istovrsnih entiteta očituju se u sljedećem:

• sudske tužbe protiv korisnika,

• patenti vezani uz programsku podršku,

• prava intelektualnog vlasništva,

• neophodnost flat-rate pristupa Internetu,

• mala brzina veze krajnjih čvorova,

• upravljanje digitalnim pravima,

• za većinu „ozbiljnih“ primjena usluga koja se ne garantira nije dovoljne kvalitete. Budući pretpostavljeni nedostaci sustava istovrsnih entiteta:

• nedostatak povjerenja,

• komercijalizacija kao potencijalni kraj sustava istovrsnih entiteta,

• integracija sustava istovrsnih entiteta u druge aplikacije. Fokus sadašnjih istraživanja:

• semantička integracija različitih tipova informacija bazama podataka čvorova,

• zadovoljenje QoS kriterija: konzistentnost, raspoloživost, sigurnost, pouzdanost,

• garancija QoS,

• vertikalna kompatibilnost prekrivajućih mreža,

• interakcija bez nužnosti odgovora,

• visokoprilagodljiva distribuirana tablica raspršivanja,

• optimalizacija prekrivajuće mreže,

• signalizacija stanja efikasnosti sustava istovrsnih entiteta,

• diseminacija podataka,

• alokacija resursa (mehanizmi i protokoli),

Tedo Vrbanec FOI, 2010. 156 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

• razvoj mogućnosti obračuna i naplate usluge,

• razvoj realističnog P2P simulatora,

• decentralizacija mehanizma reputacije,

• semantički upiti,

• efikasnost distribucije P2P sadržaja,

• metapodaci i upiti pretraživanja ovisni od sadržaja,

• smanjenje signalnog prometa,

• P2P algoritmi orijentirani na podatke,

• upravljanje sadržajem,

• integracija aplikacija i podataka,

• povjerenje u sigurnost i autentificirani prijenos,

• razvoj tržišnih mehanizama,

• pouzdana razmjena poruka,

• P2P sustavi u mobilnim i ad-hoc mrežama,

• dinamičko ažuriranje sadržaja. Fokus budućih istraživanja:

• anonimno ali sigurno elektroničko poslovanje,

• međudjelovanje različitih P2P standarda,

• P2P sustavi za poslovne informacijske sustave,

• diseminacija podataka u stvarnom vremenu,

• P2P datotečni sustavi,

• koncept povjerenja i dinamičke sigurnosti,

• distribuirani mehanizmi pretraživanja,

• P2P tehnologije u mobilnim i ad-hoc mrežama,

• inteligentno pretraživanje i

• razvoj P2P sustava nove generacije, tzv. P4P (engl. Pay for Performance) sustava. Iz navedenog je jasno da je istraživačko područje veliko i teško iscrpivo u doglednom vremenu. Pojmovna problematika Pojmovi P2P sustav, P2P mreža, P2P protokoli i P2P aplikacije izgledaju sami po sebi prilično jasni. Međutim, teško ih je, ponekad i nemoguće razdvajati, jer su to različiti pogledi na jednu paradigmu:

Tedo Vrbanec FOI, 2010. 157 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

• P2P sustav – sveobuhvatni pojam za P2P protokole, aplikacije i mrežu koji čine jedinstven distribuirani sustav.

• P2P aplikacija – u središtu zanimanja je aplikativni dio paradigme, kako je P2P sustav, kojim programskim rješenjima realiziran.

• P2P protokol – protokol („ljepilo“) koji P2P sustav drži povezanim.

• P2P mreža – u vidu imamo načine i razine (fizičke i logičke/virtualne) povezanosti između čvorova. Njihov je međusobni odnos prikazan slikom 16, na str. 49. Domena rada Domena rada proteže se kroz dvije pod-domene. To su P2P sustavi i P2P simulatori. Granične znanstvene discipline s kojima rad „komunicira“ su računalne mreže, distribuirani sustavi, operacijska istraživanja, operacijski sustavi i programsko inženjerstvo. S obzirom da je domena mreža istovrsnih entiteta dinamična i u stalnom širenju, niz je graničnih područja koja izlaze iz okvira ovog rada, a zahvalna su područja daljnjih istraživanja: 1. Razrada kategorizacije primjene mreža istovrsnih entiteta1. 2. Otpornost na greške i ispade sustava istovrsnih entiteta. 3. Skalabilnost sustava istovrsnih entiteta. 4. Izrada simulatora sustava istovrsnih entiteta koji odgovara prije zadanim kriterijima. 5. Sigurnosni mehanizmi P2P protokola (pojedinačno i usporedno). Literatura U pogledu dostupne literature, P2P sustavi i P2P simulatori imaju svojstva, od kojih su neka, u drugim znanstvenim granama informacijskih i računalnih znanosti, međusobno isključiva:

• obilje objavljenih znanstvenih radova2,

• izuzetno mali broj knjiga,

• šarolikost pristupa istim pitanjima i problemima,

1 U radu je razvidno devetnaest kategorija primjene mreža istovrsnih entiteta. Navedena kategorizacija ne mora biti jedina moguća i svakako može biti zahvalan predmet daljnjeg istraživanja. Dapače, u prilogu III Kategorije primjena P2P mreža s primjerima, prikazani su primjeri mreža istovrsnih entiteta za svaku pojedinu kategoriju. S obzirom na njihov velik broj, daljnji cilj istraživanja može biti sinteza, stvaranje nadkategorija, općenito razrada taksonomije mreža istovrsnih entiteta. Povezati te dvije kategorizacije je zahvalan istraživački posao. 2 Radova o P2P sustavima gotovo da i nema na hrvatskom jeziku, a knjiga, koliko je autoru poznato - nema.

Tedo Vrbanec FOI, 2010. 158 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

• oslanjanje na prototipove aplikacija, projekte i ideje,

• vrlo česta nemogućnost ikakve provjere navoda u radovima,

• na temelju rezultata istraživanja potpomognutih javno nedostupnim aplikacijama, zatvorena grupa autora objavljuje mnoštvo radova,

• veći broj poznatijih svjetskih sveučilišta ima u svojim studijima kolegije koji se bave P2P sustavima, a za koje autor koristi hrvatski naziv sustavi istovrsnih entiteta,

• od 2008. godine zanimanje znanstvenih istraživača za temu P2P sustava nema više eksplozivni rast kao prvih devet godina, što je pokazatelj da P2P sustavi ulaze u zrelu fazu svoga razvoja. Ispunjenje ciljeva istraživanja i dokaz hipoteza Istraživanje prikazano u ovom radu imalo je podosta ciljeva koji su grupirani u pet grupa u odlomku 1.3 Ciljevi istraživanja (str. 7). Osim nemogućnosti stvaranja rang-liste vrednovanih P2P simulatora zbog njihove potpune neusporedivosti (što je detaljno objašnjeno u poglavlju 4.7 Usporedba simulatora na str. 132,), a što se prije početka istraživanja nije moglo pretpostaviti, svi su ostali ciljevi ispunjeni. Od cjelokupnog velikog skupa postojećih simulatora odbačeni su svi oni koji nisu primjenjivi za P2P simulacije. Za detaljnije je proučavanje preostalo deset specijaliziranih P2P simulatora: Neurogrid, FreePastry, PeerSim, RangeSim, GnutellaSim, GnucNS, p2psim, PlanetSim, PeerfactSim.KOM i GPS te šest mrežnih simulatora koji mogu izvoditi i P2P simulacije: Narses, NS-2, NS-3, OMNeT++, OverSim, i J-Sim. Dakle, njih ukupno 16, ocjenjivani su prema metodi vrednovanja objašnjenoj u poglavlju 4.5 Metoda vrednovanja na str. 107 i prema kriterijima koji su objašnjeni u poglavlju 4.4 Kriteriji usporedbe i vrednovanja P2P simulatora korištenih u istraživanju na str. 105 a ovdje ih navedimo ponovo: arhitektura simulatora, korisnost, skalabilnost, statistika, simulacija paketske mreže i ograničenja sustava. Manje bitni osnovni podaci o P2P simulatorima prikazani su u tablici 15 na str. 110, važna usporedba je izvršena u poglavlju 4.7 Usporedba simulatora na str. 132, a usporedni su podaci prikazani u tablici 16 na str. 135. U zaključcima iznesenima u poglavlju 4.8 Zaključak, vidljivo je da se postojeći P2P simulatori tako loših svojstava da je izravno potvrđena hipoteza H1, a „izrada istraživanjem predviđene rang-liste P2P simulatora (na temelju kriterija usporedbe i vrednovanja) besmislena“ (iz poglavlja 4.8 Zaključak, kraj prvog odlomka).

Tedo Vrbanec FOI, 2010. 159 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Kako bi se opisana situacija na neki način razriješila te ponudilo rješenje, a pri tome dokazala pomoćna hipoteza H2, u poglavlju 5 Model P2P simulatora (str. 138-154) razrađen je model P2P simulatora sa svim njegovim značajkama, prikazani funkcionalni i nefunkcionalni zahtjevi, u obliku slojevitog koncepcijskog modela i formalnog ER modela. P2P sustavi nisu samo budućnost Interneta – oni su već sada prevladavajući oblik njegova prometa. Naravno, paradigma klijent-poslužitelj neće nestati. Vremenom će se sve više diferencirati područja u kojima prednosti ima jedna ili druga paradigma – umjesto konkurentnih, one sve više postaju komplementarne. Od prvih računala do danas, njihov razvoj i razvoj njima potpomognute komunikacije, razmjene poruka i podataka nije posustao. Nije teško zamisliti da će se u nekoj bližoj ili daljnjoj budućnosti javiti neka nova paradigma koja će biti potpuno drugačije od ove dvije dosadašnje.

Čakovec, travanj 2010. Tedo Vrbanec

Tedo Vrbanec FOI, 2010. 160 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

LITERATURA

[1] -, About PlanetLab | PlanetLab, PlanetLab Consortium, Princeton University, -, , (18. ožujak 2010.) [2] -, Emulab.Net - Emulab - Network Emulation Testbed Home, The University of Utah, 17. ožujak 2010., , (18. ožujak 2010.) [3] Milojič i ć , D. i dr., Peer-to-Peer Computing, HP Laboratories Palo Alto, 2001. [4] Bellifemine, F. I. D., JADE - A White Paper, Telecom Italia Lab, 2003. [5] Tanenbaum, A. S., Computer Networks, Prentice Hall, 2003. [6] Wombacher, A., Overview on Decentralized Establishment of Multi-lateral Collaborations, Department of Computer Science, University of Twente, The Netherlands, 2005. [7] Shirky, C., What is P2P... and what Isn’t, O’Reilly Network, 24. studeni 2000., , (17. kolovoz 2009.) [8] -, Peer-to-peer - Wikipedia, the free encyclopedia, Wikimedia Foundation, Inc., 14. travanj 2008., , (16. travanj 2008.) [9] -, Mac-P2P.com: Peer to Peer (P2P) Introduction and History, Mac-P2P.com, 26. kolovoz 2003., , (16. travanj 2008.) [10] Kawamoto, Y., P2P File Sharing - History of P2P, Kwansei Gakuin University - School Of Policy Studies, 2002., , (16. travanj 2008.) [11] Sendil, M. S.; Nagarajan, N., An Optimized Method for Analyzing the Peer to Peer Traffic, European Journal of Scientific Research; Aug2009, Vol. 34 No. 4, str. 535- 541, 2009. [12] Loo, A. W., Peer-to-Peer Computing; Building Supercomputers with WebTechnologies, Springer, 2007. [13] Parameswaran, M., Susarla A. & Whinston, A.B., P2P Networking: An Information-Sharing Alternative, Computer, vol. 34, str. 31-38, 2001.

Tedo Vrbanec FOI, 2010. 161 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[14] Walkerdine, J., Melville, L. & Sommerville, I., Dependability properties of P2P architectures, Peer-to-Peer Computing, 2002. Proceedings from Second International Conference, str. 173-174, 2002. [15] Wang, Y. & Vassileva, J., Trust and Reputation Model in Peer-to-Peer Networks, Proceedings of the 3rd International Conference on Peer-to-Peer Computing, str. 150, 2003. [16] -, Red Hat Enterprise Linux 5, Red Hat, Inc., 2008., , (6. svibanj 2008.) [17] -, Debian GNU/Linux na CD-ima, SPI, 4. veljač a 2008., , (6. svibanj 2008.) [18] Vrbanec, T. & Hutinski, Ž., New Security Threats over IM and VoIP Software, MIPRO 2006, Section Information Systems Security, Opatija, 2006. [19] Annapureddy, S. I. D., Providing Video-on-Demand using Peer-to-Peer Networks, Harvard's School of Engineering and Applied Sciences, 2008. [20] Kulkarni, S., Pâris, J. & Shah, P., A Stream Tapping Protocol Involving Clients in the Distribution of VoD, Advances in Multimedia, Vol. 2008, 2008. [21] Berndt, P., Using Symmetric Distributed Processing for Peer-to-Peer VoIP Conferencing in Auditory Virtual Environments, The 7th International Workshop on Peer-to-Peer Systems (IPTPS'08), 2008. [22] Yu, W., Chellappan, S. & Xuan, D., P2P/Grid-based overlay architecture to support VoIP services in large-scale IP networks, Future Generation Computer Systems, Vol. 21/2005, str. 209-219, 2005. [23] Bryan, D. A. & Lowekamp, B.B., SOSIMPLE: A SIP/SIMPLE Based P2P VoIP and IM System, , studeni, 2004., , (09. svibanj 2008.) [24] -, Voice over Internet Protocol - Wikipedia, the free encyclopedia, Wikimedia Foundation, Inc., 8. svibanj 2008., , (9. svibanj 2008.) [25] Xie, H. & Yang, R.Y., A Measurement-based Study of the Skype Peer-to-Peer VoIP Performance, The 6th International Workshop on Peer-to-Peer Systems (IPTPS'07), USA, 2007.

Tedo Vrbanec FOI, 2010. 162 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[26] Guha, S., Daswani, N. & Jain, R., An Experimental Study of the Skype Peer-to-Peer VoIP System, The 5th International Workshop on Peer-to-Peer Systems (IPTPS'06), USA, 2006. [27] -, UUCP - Wikipedia, the free encyclopedia, Wikimedia Foundation, Inc., 27. ožujak 2008., , (16. travanj 2008.) [28] -, Usenet - Wikipedia, the free encyclopedia, Wikimedia Foundation, Inc., 15. travanj 2008., , (16. travanj 2008.) [29] Stamerjohanns, H., Oldenburg Archie Gateway - European Departments, Documents, and Theses, Institute of Physics, -, , (16. travanj 2008.) [30] Lv, Q. I. D., Search and Replication in Unstructured Peer-to-Peer Networks, Proceedings of 16th ACM International Conference on Supercomputing (ICS'02), USA, 2002. [31] -, OpenP2P.com -- p2p development, open source development, O'Reilly Media, Inc., -, , (6. kolovoz 2008.) [32] Clarke, I., The Freenet Project - /understand, The Freenet Project, -, , (4. srpanj 2008.) [33] Blažević , N., Biš ć an, N. & Biondi ć , B., Peer‐‐ 2 Peer mreže, Fakultet elektrotehnike i rač unalstva Sveu č ilišta u Zagrebu, Zavod za telekomunikacije, 2009., , (5. lipanj 2009.) [34] Coulouris, G., Dolimore, J. & Kindberg, T., Distributed systems, Pearson Education Limited, Harlow, 2005. [35] Steinmetz, R. & Wehrle, K., Peer-to-Peer Systems and Applications, Springer- Verlag New York, Inc., 2005. [36] Karger, D. R. & Ruhl, M., Simple Efficient Load Balancing Algorithms for Peer-to- Peer Systems, MIT Computer Science and Artificial Intelligence Laboratory, IBM Almaden Research Center, 2004. [37] Lua, E. K. i dr., A Survey and Comparison of Peer-to-Peer Overlay Network Schemes, IEEE, 2004. [38] Fedotova, N., Fanti, S. & Veltri, L., Kademlia for data storage and retrieval in enterprise networks, IEEE Computer Society: Proceedings of the 2007 International

Tedo Vrbanec FOI, 2010. 163 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Conference on Collaborative Computing: Networking, Applications and Worksharing, 2007. [39] -, Big O notation, Wikimedia Foundation, Inc., 10. kolovoz 2009., , (15. kolovoz 2009.) [40] Reynolds, P. & Vahdat, A., Efficient peer-to-peer keyword searching, Proceedings of the ACM/IFIP/USENIX 2003 International Conference on Middleware, Springer-Verlag New York, str. 21-40, 2003. [41] Gnawali, O. D., A keyword-set search system for peer-to-peer networks, Massachusetts Institute of Technology, 2002. [42] Harren, M. I. D., Complex queries in DHT-based peer-to-peer networks, 1st International Workshop on Peer-to-Peer Systems (IPTPS’02), 2002. [43] Tang, C., Xu, Z. & Dwarkadas, S., Peer-to-Peer Information Retrieval Using Self- Organizing Semantic Overlay Networks, SIGCOMM'03, 2003. [44] Sahin, O. D. I. D., Content-Based Similarity Search over Peer-to-Peer Systems, Proceedings of DBISP2P, Vol. 4, str. 61-78, Springer, 2004. [45] Liu, B., Lee, W. & Lee, D., Supporting complex multi-dimensional queries in P2P systems, International Conference on Distributed Computing Systems, IEEE Computer Society, Vol. 25, 2005.. [46] Li, Y. i dr., Scalable Peer-to-Peer File Sharing with Efficient Complex Query Support, Computer Communications and Networks, 2007. ICCCN 2007. Proceedings of 16th International Conference on, str. 121-127, 2007. [47] Li, M.; Lee, W.C.; Sivasubramaniam, A., Semantic Small World: An Overlay Network for Peer-to-Peer Search, Proceedings of the 12th IEEE International Conference on Network Protocols, str. 228-238, 2004. [48] Abraham, I., Practical Locality-Awareness for Large Scale Information Sharing, Springer, Lecture Notes in Computer Science, Vol. 3640, 2005. [49] Nejdl, W. i dr., EDUTELLA: a P2P Networking Infrastructure based on RDF, Proceedings of the 11th international conference on World Wide Web, str. 604-615, 2002. [50] Thaden, U.; Siberski, W.; Nejdl, W., A Semantic Web based Peer-to-Peer Service Registry Network, Citeseer, 2003.

Tedo Vrbanec FOI, 2010. 164 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[51] Ardenghi, J. & Echaiz, J., Peer-to-Peer Systems: The Present and the Future, Journal of Computer Science and Technology, Vol. 7, No. 3, str. 198-203, 2007. [52] -, Ontologija (rač unarstvo) - Wikipedija, Wikipedija, 5. prosinac 2008., , (5. prosinac 2008.) [53] -, The Friend of a Friend (FOAF) project, FOAF project, -, , (31. prosinac 2008.) [54] -, How Grid Computing Works, IBM Canada Ltd., 2004., , (23. rujan 2008.) [55] Dobrenić , D. & Imamagi ć , E., Hrvatska nacionalna grig infrastruktura - CRO NGI: Jedino hrvatsko "superrač unalo", SRCE, Novosti, Vol. 21, 2008. [56] -, Klasterske distribucije, Croatian National Grid Infrastructure, SRCE, , , (17. studeni 2008.) [57] -, CRO NGI arhitektura, Croatian National Grid Infrastructure, SRCE, , , (18. studeni 2008.) [58] -, EGI: What is EGI?, European Grid Infrastructure, 30 travanj 2008., , (18. studeni 2008.) [59] Rudež, T., Slijed slova u knjizi života, Vijenac Vol. 171, 07.09.2000. Matica Hrvatska, 2000. [60] -, Why Clusters?, Grid.org, 2008., , (26. rujan 2008.) [61] -, Sun Grid Engine, Sun Microsystems, Inc., 23. rujan 2008., , (23. listopad 2008.) [62] -, About the Globus Toolkit, The Globus Consortium, -, , (23. listopad 2008.) [63] -, Klasterske distribucije, Croatian National Grid Infrastructure @ SRCE, , , (17. studeni 2008.) [64] Gannon, D. I. D., Programming the Grid: Distributed Software Components, P2P and Grid Web Services for Scientific Applications, Springer Netherlands, 2004. [65] -, LionShare FAQ, The Pennsylvania State University, 1. studeni 2006., , (4. lipanj 2009.)

Tedo Vrbanec FOI, 2010. 165 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[66] Halm, M., LionShare: Secure P2P Collaboration for Academic Networks, EDUCAUSE Annual Conferences, 2006. [67] A. Tavares i dr., Bumerang – a peer-to-peer system to share knowledge insidecommunities at the University, m-ICTE2009 Conference, Lisbone, Portugal, 2009. [68] Shi, H. I. D., Design and implementation of digital right management in acollaborative peer-to-peer network, Computer and Computational Sciences, 2007. IMSCCS 2007. Second International Multi-Symposiums onVolume , Issue , 13-15 Aug. 2007 str.198-203, 2007. [69] Shi, H. I. D., Collaborative Peer-to-Peer Service for Information Sharing Using JXTA, IMSCCS, Proceedings of the First International Multi-Symposiums on Computer and Computational Sciences - Volume 1 (IMSCCS'06) - Volume 01, str. 552-559, 2006. [70] Zhang, Y. I. D., Collaborative Legal Information Sharing on P2P Network, Network and Parallel Computing Workshops, 2007. NPC Workshops. IFIP International Conference, str.41-47, 2007. [71] Ghosemajumder, S., Advanced Peer-Based Technology Business Models, Massachusetts Institute of Technology, Sloan School of Management, 2002. [72] Hoßfeld, T. & Binzenho, A., Analysis of Skype VoIP traffic in UMTS: End-to-end QoS and QoE measurements, Computer Networks Vol. 52, str. 650-666, 2008.. [73] Liao, C. & Tsou, C., User acceptance of computer-mediated communication: The SkypeOut case, Expert Systems with Applications, Vol. 36, 2009. str. 4595–4603, 2009.. [74] Armstrong, R., Ban corporate Skype usage immediately, Info-Tech Research Group, studeni 2005., , (studeni 2005.) [75] -, Home - ourmedia.org, Ourmedia.org, -, , (11. kolovoz 2009.) [76] -, Free and legal music downloads - Jamendo, Jamendo, -, , (11. kolovoz 2009.) [77] -, LibriVox, LibriVox, -, , (11.kolovoz 2009.)

Tedo Vrbanec FOI, 2010. 166 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[78] -, Revision3 Internet Television, Revision3, -, , (11. kolovoz 2009.) [79] -, CBC.ca - Canadian News Sports Entertainment Kids Docs Radio TV, CBC, 2009., , (11. kolovoz 2009.) [80] -, Vuze: The most powerful bittorrent app in the world, Vuze, Inc., 2009., , (11. kolovoz 2009.) [81] -, Home - Joost, Joost N.V., 2009., , (11. kolovoz 2009.) [82] -, DistroWatch.com: Put the fun back into computing. Use Linux, BSD, DistroWatch.com, 2009., , (11. kolovoz 2009.) [83] -, Linux Distributions - Facts and Figures, DistroWatch.com, 2. veljač a 2010., , (2. veljač a 2010.) [84] -, P2P Survey 2006, ipoque GmbH, 2007. [85] Schulze, H. & Mochalski, K., ipoque Internet Study 2007, ipoque GmbH, 2008. [86] Schulze, H. & Mochalski, K., ipoque Internet Study 2008/2009, ipoque GmbH, 2009. [87] -, The P4P Working Group | Pando Networks, Pando Networks, Inc., 2009., , (24. ožujak 2010.) [88] -, Comparison of file sharing applications - Wikipedia, the free encyclopedia, Wikimedia Foundation, Inc., 3. lipanj 2009., , (9. lipanj 2009.) [89] -, List of P2P protocols, Wikimedia Foundation, Inc., 16. lipanj 2009., , (13. kolovoz 2009.) [90] Bian, J., Technologies for Search and Data Retrieval in Peer-to-Peer Networks, College of Computing, Georgia Tech, 2006. [91] Anderson, D. I. D., SETI@home: An Experiment in Public-Resource Computing, Communications of the ACM, Vol. 45, No. 11, studeni 2002., 2002. [92] -, BOINCstats | SETI@Home - Credit overview, BOINC Project, -, , (8. srpanj 2008.) [93] -, BOINC - Open-source software for volunteer computing and grid computing, University of California, 2009., , (12. kolovoz 2009.)

Tedo Vrbanec FOI, 2010. 167 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[94] -, Berkeley Open Infrastructure for Network Computing, Wikimedia Foundation, Inc., 1. kolovoz 2009., , (12. kolovoz 2009.) [95] -, 31st TOP500 List of World’s Most Powerful Supercomputers Topped by World’s First Petaflop/s System, TOP500.Org, 14. lipanj 2008., , (8. srpanj 2008.) [96] -, Technology: Fastest supercomputer in the world proves one in a million billion, Guardian News and Media Limited, 10. lipanj 2008., , (8. srpanj 2008.) [97] Bordignon, F. R. A. & Tolosa, G.H., Gnutella Protocol Final Paper (Gnutella: Distributed System for Information Storage and Searching Model Description), División Estadística y Sistemas Departamento de Ciencias Básicas Universidad Nacional de Luján, 2001. [98] Wang, C. & Li, B., Peer-to-Peer Overlay Networks: A Survey, Department of Computer Science, The Hong Kong University of Science and Technology, Hong Kong, 2003. [99] Ripeanu, M., Foster, I. & Iamnitchi, A., Mapping the Gnutella Network: Properties of Large-Scale Peer-to-Peer Systems and Implications for System Design, Computer Science Department, The University of Chicago, Mathematics and Computer Science Division, Argonne National Laboratory, 2008. [100] Brain, M., HowStuffWorks "How Gnutella Works", HowStuffWorks, Inc., 2002., , (22. lipanj 2009.) [101] Chawathe, Y. i dr., Making gnutella-like p2p systems scalable, Proceedings of the 2003 conference on Applications, technologies, architectures, and protocols for computer communications, 2003. [102] Baumgart, I.; Heep, B.; Krause, S., OverSim: A Flexible Overlay Network Simulation Framework, Proceedings of 10th IEEE Global Internet Symposium (GI’07) in conjunction with IEEE INFOCOM, Vol. 7, str. 79-84, 2007.

Tedo Vrbanec FOI, 2010. 168 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[103] Schikuta, E., The NeuroGrid Project, Institut für Informatik und Wirtschaftsinformatik, University of Vienna, 2002. [104] Joseph, S., NeuroGrid: Semantically Routing Queries in Peer-to-Peer Networks, University of Tokyo, Strategic Software Division, Tokyo, Japan, 2009. [105] Cohen, E. & Shenker, S., Replication Strategies in Unstructured Peer-to-Peer Networks, ACM, 2002. [106] Heckmann, O. & Bock, A., The eDonkey 2000 Protocol, Darmstadt University of Technology, 2002. [107] Tutschku, K., A Measurement-based Traffic Profile of the eDonkey Filesharing Service, Springer, 2004. [108] Rai, V. I. D., A Multiphased Approach for Modeling and Analysis of the BitTorrent Protocol, Vrije Universiteit, Delft University, The Netherlands, 2004. [109] Pouwelse, J. A. I. D., A Measurement Study of the BitTorrent Peer-to-Peer File- Sharing System, Elsevier Science, 2004. [110] -, giFT: About giFT, The giFT Project, , , (8. veljač a 2010.) [111] Ding, C.H.; Nutanong, S.; Buyya, R., P2P Networks for Content Sharing, arXiv.org e-Print archiv, 2004. [112] -, OpenFT, Wikipedia, The Free Encyclopedia, Wikimedia Foundation, Inc., 15. siječ anj 2010., , (8. velja č a 2010.) [113] -, openFT - Enterprise File Transfer, Fujitsu Technology Solutions, 2009. [114] -, Direct Connect (file sharing), the free encyclopedia, Wikimedia Foundation, Inc., 6. siječ anj 2010., , (14. siječ anj 2010.) [115] -, NMDC Protocol, TeamFair.info, 17. studeni 2009., , (15. siječ anj 2010.) [116] -, The Freenet Project - /understand, The Freenet Project, -, , (4. srpanj 2008.) [117] Krogh, G., Haefliger, S. & Spaeth, S., Collective Action and Communal Resources in Open Source Software Development: The Case of Freenet, Institute of Management, University of St. Gallen Switzerland, 2003.

Tedo Vrbanec FOI, 2010. 169 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[118] Ian Clarke i dr., The Freenet Project, Freenetproject.org, 8. kolovoz 2009., , (13. kolovoz 2009.) [119] Clarke, I. I. D., Freenet: A Distributed Anonymous Information Storage and Retrieval System, Springer, 2001. [120] -, Freenet - Wikipedia, the free encyclopedia, Wikimedia Foundation, Inc., 9. kolovoz 2009., , (13. kolovoz 2009.) [121] Clarke, I., A Distributed Decentralized Information Storage and Retrieval System, Division of Informatics, University of Edinburgh, 1999.. [122] Stoica, I. I. D., Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications, , 2002. [123] Kaashoek, M. F. & Karger, D.R., Koorde: A simple degree-optimal distributed hash table, MIT Laboratory for Computer Science, 2003. [124] Ratnasamy, S., A Scalable Content-Addressable Network, In Proceedings of ACM SIGCOMM 2001., 2001. [125] -, Content addressable network, Wikimedia Foundation, Inc., 22. srpanj 2009., , (16. kolovoz 2009.) [126] Zhao, B. Y., Kubiatowicz, J. & Joseph, A.D., Tapestry: An Infrastructure for Fault- tolerant Wide-area Location and Routing, University of California, Berkeley, 2001. [127] Zhao, B. Y. I. D., Tapestry: A resilient global - scale overlay for service deployment, IEEE Journal on selected areas in communications, Vol. 22, No. 1, str. 41-53, 2004. [128] Plaxton, C. G., Rajaraman, R. & Richa, A.W., Accessing nearby copies of replicated objects in a distributed environment, Theory of Computing Systems, Vol. 32, No. 3, str. 241-280, 1997. [129] Rowstron, A. & Druschel, P., Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems, IFIP/ACM International Conference on Distributed Systems Platforms (Middleware), 2001. [130] -, Kademlia - Wikipedia, the free encyclopedia:, Wikimedia Foundation, Inc., 25. prosinac 2009., , (26. prosinac 2009.)

Tedo Vrbanec FOI, 2010. 170 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[131] Maymounkov, P. & Mazieres, D., Kademlia: A Peer-to-peer Information System Based on the XOR Metric, New York University, 2007. [132] -, Kademlia: A Design Specification, The XLattice Project, Sourceforge.net, 20. veljač a 2008., , () [133] Meghdad, M. I. D., Distributed Query Processing in P2P Network using JXTA, Proceedings of World Academy of Science: Engineering & Technology; Feb2009 Supplement, Vol. 38, str. 1002-1006, 2009. [134] Brookshier, D. I. D., Jxta: Java P2P Programming, Chapter 2, Overview of JXTA, Sams Publishing, 2002. [135] Gong, L., Project JXTA: A Technology Overview, Sun Microsystems, Inc., 2001. [136] -, JXTA™ Community Projects, Sun Microsystems, Inc., O'Reilly, CollabNet, srpanj 2008., , (11. siječ anj 2009.) [137] Dolog, P., Building Open Systems Using Edutella - Edutella framework and integration possibilities, Citeseer, 2003. [138] Tang, C.; Xu, Z.; Mahalingam, M., pSearch: Information Retrieval in Structured Overlays, ACM SIGCOMM Computer Communication Review, Vol. 33, str. 89-94, 2003. [139] Ipšin, I.; Mejaš, P., BPR i simulacije (seminar iz kolegija Modeliranje i simulacije), Fakultet organizacije i informatike Varaždin, 2004. [140] Law, A. M. & Kelton, W.D., Simulation Modeling and Analysis, Third Edition, McGraw-Hill, 2000. [141] Feigl, M., Usporedba simulatora mreže istovrsnih entiteta (diplomski rad), Fakultet elektrotehnike i rač unarstva, 2008. [142] Družinec, I.; Soldić . I., Ptrijeve mreže (seminar iz kolegija Modeliranje i simulacije), Fakultet organizacije i informatike Varaždin, 2004. [143] Božikov, J., Modeliranje i simulacija, , 2008. [144] Naicken, S. i dr., The state of peer-to-peer simulators and simulations, ACM SIGCOMM Computer Communication Review, Vol. 37, No. 2, 2007. [145] -, Validation - P2P Wiki, Universitat Rovira i Virgili, Spain, 2010. [146] -, LGPL licenca - HrOpenWiki, HrOpenWiki, 8. prosinac 2008., , (10. ožujak 2010.)

Tedo Vrbanec FOI, 2010. 171 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[147] -, NeuroGrid | P2P Search, , -, , (15. veljač a 2010.) [148] Ting, N. S., Simulating Peer-to-Peer Networks, University of Saskatchewan, Department of Computer Science, 2006. [149] Vuković , Z., RMI Remote Method Invocation, Elektrotehnič ki fakultet Osijek, 20. travanj 2007, , (17. veljač a 2010.) [150] Blanas, S., RangeSim 0.1 dokumentacija, , 2006. [151] He, Q., Packet-level Peer-to-Peer (Gnutella) Simulation, College of Computing, Georgia Institute of Technology, 9. rujan 2003., , (19. veljač a 2010.) [152] He, Q. i dr., Mapping Peer Behavior to Packet-level Details: A Framework for Packet-level Simulation of Peer-to-Peer Systems, MASCOTS 2003, 2003. [153] -, GnucNS - Network Simulator, , , , (25.02.2010.) [154] Jara, J. A., Design of the p2p simulator, The DBE Project, 2005. [155] Brown, A.; Kolberg, M., draft-irtf-p2prg-core-simulators-00 - Tools for Peer-to- Peer Network Simulation, IETF, 2006. [156] Pujol-Ahullo, J.; Garcia-Lopez, P., PlanetSim: An extensible simulation tool for peer-to-peer networks and services, Department of Computer Science Engineering and Maths, Universitat Rovira i Virgili, Tarragona, Spain, 2009. [157] Pujol-Ahullo, J. i dr., PlanetSim: An extensible framework for overlay network and services simulations, Universitat Rovira i Virgili - Spain, Technical University of Darmstadt - Germany, 2007. [158] Garcia, P. i dr., PlanetSim: A New Overlay Network Simulation Framework, Department of Computer Science and Mathematics, Universitat Rovira i Virgili, Spain, 2005. [159] Pujol, J., PlanetSim README datoteka, Planet Project, 27. srpanj 2006, , (11. ožujak 2010.)

Tedo Vrbanec FOI, 2010. 172 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[160] Planetsim Core Team, PlanetSim: Object Oriented Simulation Framework for Overlay Networks, Planet research project, -, , (11. ožujak 2010.) [161] -, PlanetLab | An open platform for developing, deploying, and accessing planetary-scale services, PlanetLab, Princeton University, 20. svibanj 2009., , (11. ožujak 2010.) [162] Kaune, S. i dr., PeerfactSim.KOM - Peer-to-Peer Simulator: Overview, Multimedia Communications Lab (KOM), Technische Universität Darmstadt, 2009., , (13. ožujak 2010.) [163] Anić , V.; Goldstein, I., Rječ nik stranih rije č i, Novi Liber, Zagreb, 1999. [164] Yang, W., Weishuai Yang - Home, Department of Computer ScienceThomas J. Watson School of Engineering and Applied Science, State University of New York at Binghamton, , , (14. ožujak 2010.) [165] Yang, W.; Abu-Ghazaleh, N., GPS: a general peer-to-peer simulator and its use for modeling BitTorrent, Proceedings of the 13th IEEE International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems, str. 425-434, 2005. [166] Giuli, TJ.; Baker, M., Narses: A Scalable Flow-Based Network Simulator, Department of Computer Science, Stanford University, 2002. [167] -, The Network Simulator - ns-2, Information Sciences Institute, University of Southern California, -, , (18. ožujka 2010.) [168] Henderson, T., ns-3 Overview, nsnam.org, xorp.org, 2010. [169] -, OMNeT++ Community Site, OMNeT++ Community, 28. siječ anj 2010., , (23. veljač a 2010.) [170] Sekercioglu, Y.A.; Varga, A.; Egan, G.K., Parallel Simulation Made Easy With OMNeT++, Proceedings of the European Simulation Symposium (ESS 2003), 2003. [171] -, The OverSim P2P Simulator, Universität Karlsruhe, Njemač ka, 9. rujan 2009., , (9. ožujak 2010.) [172] -, Remote procedure call, Wikimedia Foundation, Inc., 6. ožujak 2010., , (10. ožujak 2010.)

Tedo Vrbanec FOI, 2010. 173 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[173] -, OverSim, Wikipedia - the free encyclopedia, Wikimedia Foundation, Inc., 10. prosinac 2009., , (9. ožujak 2010.) [174] Blake, S. i dr., An Architecture for Differentiated Services, Request for Comments: 2475, Network Working Group, 1998. [175] Hou, J. (urednik) i dr., J-Sim Official Home, Ohio State University, 28. siječ anj 2005., , (23. veljač a 2010.) [176] -, Component Architectur (J-Sim Official), Ohio State University, . [177] Aurer, B., Umrežavanje rač unala - predavanja, Visoka uč iteljska škola u Č akovcu, 2006. [178] Babaoglu, O. i drugi, BISON - Biology-Inspired techniques for Self-Organization in dynamic Networks, University of Bologna, Department of Computer Science, travanj 2006., , (13. siječ anj 2009.) [179] Montresor, A. I. D., The Anthill Project, Odjel za rač unalne znanosti Sveu č ilišta u Bologni (Italija), Odjel za Telematiku Sveuč ilišta za znanost i tehnologiju u Trondheimu (Norveška), 2002.. [180] -, Infobot - bot with brains and good looks, -, -, , (14. siječ anj 2009.) [181] Ken Walsh, 1stWorks Corporation, , 2007., , (16. siječ anj 2009.) [182] -, Alberg Software Inc., , -, , (19. siječ anj 2009.) [183] Bizzaro, J. W., Bioinformatics.Org: Software Map, Bioinformatics Organization, siječ anj 2009., , (19. sije č anj 2009.) [184] -, Collanos | Think Out of the Inbox, -, 16. siječ anj 2009., , (19. siječ anj 2009.) [185] Liber, O., Colloquia, , 2002., , (19. siječ anj 2009.) [186] -, eZmeeting - People Working Together, , 2007., , (19. siječ anj 2009.) [187] -, Poč etna stranica web-mjesta Microsoft Office Groove - Microsoft Office Online, Microsoft, 22. kolovoz 2008., , (19. siječ anj 2009.) [188] -, Outhink Media - Express Yourself - Home, Outhink Inc., 2006., , (20. siječ anj 2009.)

Tedo Vrbanec FOI, 2010. 174 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[189] Whitehead, J., WebDAV Resources, WebDAV.org, 18. prosinac 2008., , (20. siječ anj 2009.) [190] -, Base One - .NET database programming tools, , 2008., , (20. siječ anj 2009.) [191] -, Biz2Peer Technologies - Peer-to-Peer Technology and Solutions, , 1. siječ anj 2004., , (20. siječ anj 2009.) [192] Polymita Technologies, Polymita Technologies - BPM (Business Process Management), ECM and Portal, , 14. siječ anj 2009., , (20. siječ anj 2009.) [193] -, Mithral Communications & Design Inc, , 2009., , (20. siječ anj 2009.) [194] -, Terazima - Distributed Resource Management, , 2001., , (20. siječ anj 2009.) [195] -, Worldos.com - worldos Resources and Information, , -, , (21. siječ anj 2009.) [196] -, Bluetooth.com | The Official Bluetooth® Technology Info Site, , 21. siječ anj 2009., , (21. siječ anj 2009.) [197] -, Brazil Project Overview, Sun Microsystems, Inc., 2009., , (21. siječ anj 2009.) [198] -, Endeavors Technologies - Pioneers of Application Virtualization and Streaming technologies, Endeavors Technologies, 2008., , (21. siječ anj 2009.) [199] -, Jini Network Technology, Sun Microsystems, Inc., 2009., , (21. siječ anj 2009.) [200] -, SmartPeer, -, -, , (21. siječ anj 2009.) [201] Justiniano, C., ChessBrain, , 14. studeni 2007., , (23. siječ anj 2009.) [202] -, DataSynapse | Leader in Dynamic Application Service Management, , 21. siječ anj 2009., , (23. siječ anj 2009.) [203] -, distributed.net: Node Zero, , 26. listopad 2008., , (23. siječ anj 2009.)

Tedo Vrbanec FOI, 2010. 175 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[204] -, The Globus Alliance, , 16. siječ anj 2009., , (23. sije č anj 2009.) [205] -, Making the Internet a Better Place for Business, Mangosoft Inc., 25. travanj 2007., , (23. siječ anj 2009.) [206] -, Parabon Computation, High-performance computing utility, Parabon Computation Inc., siječ anj 2009., , (25. sije č anj 2009.) [207] -, What is REBOL?, REBOL Technologie, 8. ožujak 2008., , (26. siječ anj 2009.) [208] -, REBOL Technologies, REBOL Technologies, 23. siječ anj 2009., , (26. siječ anj 2009.) [209] -, SETI@home, University of California, 18. prosinac 2008., , (26. siječ anj 2009.) [210] -, Ubero - orange county software development, orange county programmer, orange county website development, orange county database, orange county IT solutions, Ubero, Inc., 2008., , (26. siječ anj 2009.) [211] Wedeniwski, S., ZetaGrid Homepage, Sebastian Wedeniwski, IBM Germany, 1. prosinac 2005., , (26. siječ anj 2009.) [212] Del Rey, M., X O B J E X :: REST Webservices, Apache Modules for XSL/T, and Start-up Capital, XOBJEX Corporation, 2008., , (26. siječ an 2009.) [213] -, : Your secure file sharing and communications tool, Filetopia Inc., 23. listopad 2008., , (26. siječ anj 2009.) [214] -, Grub | Help crawl it all, Grub.org, 25. siječ anj 2009., , (26. siječ anj 2009.) [215] -, KaZaA, Sharman Networks, prosinac 2008., , (26. siječ anj 2009.) [216] -, MusicBrainzXMLMetaData - MusicBrainz, , -, , (26. siječ anj 2009.) [217] -, Welcome to MusicBrainz! - MusicBrainz, , 21. siječ anj 2009., , (26. siječ anj 2009.) [218] -, NeuroGrid | P2P Search, , -, , (26. siječ anj 2009.)

Tedo Vrbanec FOI, 2010. 176 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[219] -, NextPage Inc | Enterprice Information Tracking, NextPage, Inc., 2008., , (26. siječ anj 2009.) [220] -, PLATFORMedia : PLATFORMedia Overview, PLATFORMedia.com, 5. prosinac 2007., , (27. siječ anj 2009.) [221] -, Welcome to Veriscape, Veriscape, Inc., 2008., , (27. siječ anj 2009.) [222] -, Excel Web Spreadsheet Sharing, Easy Free File Sharing Server Program, peer- to-peer (P2P) sharing, free personal web server, , 12. lipanj 2008., , (27. siječ anj 2009.) [223] -, Eudora Sharing Protocol, QUALCOMM Inc., 2008., , (28. siječ anj 2009.) [224] -, Gnutella - Wikipedia, the free encyclopedia, Wikimedia Foundation, Inc., 22. siječ anj 2009., , (28. sije č anj 2009.) [225] -, iMesh Homepage, iMesh Inc., 2008., , (28. siječ anj 2009.) [226] -, Inoize.com - share mp3 Resources and Information, , -, , (28. siječ anj 2009.) [227] -, Napster Free - Listen to free streaming music online, Napster, LLC., 2008., , (29. siječ anj 2009.) [228] -, OpenNap: Open Source Napster Server, , 15. studeni 2001., , (29. siječ anj 2009.) [229] -, Magnetar Games Corporation, Magnetar Games, 4. veljač a 2008., , (30. siječ anj 2009.) [230] -, Second Life - Wikipedija, Wikimedia Foundation, 22. siječ anj 2009., , (30. siječ anj 2009.) [231] -, Second Life | What is Second Life?, Linden Research, Inc., 2009., , (30. siječ anj 2009.) [232] Stevens, V., Second life and online collaboration through peer to peer distributed learning networks, Proceedings of the METSMaC Conference, 20. ožujak 2007., , (30. siječ anj 2009.)

Tedo Vrbanec FOI, 2010. 177 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[233] -, Xfire - Gaming Simplified, Xfire, Inc., 20. siječ anj 2009., , (30. siječ anj 2009.) [234] -, Akamai: The Leader in Web Application Acceleration and Performance Management, Streaming Media Services and Content Delivery, Akamai Technologies, 20. siječ anj 2009., , (30. sije č anj 2009.) [235] -, Alliance Consulting | HOME, Alliance Consulting, 3. rujan 2008., , (30. siječ anj 2009.) [236] Clarke, I., The Freenet Project - /index, The Freenet Project, 31. siječ anj 2009., , (2. veljač a 2009.) [237] -, Main Page - JabberWiki, Jabber.org, 18. siječ anj 2009., , (2. veljač a 2009.) [238] -, Glue Technology -- Just-In-Time for the Enterprise, Glue Technology, Inc., 19. kolovoz 2002., , (2. veljač a 2009.) [239] -, Distributed Transaction Processing: The XA Specification, The Open Group, 1991.. [240] -, RosettaNet FAQs, RosettaNet, 2009., , (2. veljač a 2009.) [241] -, Oculus Technologies Corporation, Oculus Technologies Corporation, -, , (2. veljač a 2009.) [242] Bergo, F., The Free Haven Project, -, 19. kolovoz 2008., , (2. veljač a 2009.) [243] Panian, Ž., Englesko-Hrvatski informatič ki enciklopedijski rje č nik, Europapress holding d.o.o. Zagreb, 2005. [244] -, .NET Framework: Overview, Microsoft, 2008., , (3. veljač a 2009.) [245] -, .NET Framework Conceptual Overview, Microsoft, 2009., , (3. veljač a 2009.) [246] -, 2Peer - The Private Internet Has Arrived, ToPeer Corporation, 2008., , (3. veljač a 2009.) [247] -, The Chord/DHash Project - Overview, -, 31. prosinac 2008., , (4. veljač a 2009.)

Tedo Vrbanec FOI, 2010. 178 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[248] -, RightsX Inc. - Developer of RightsEnforcer - Persistent Document Security, RightsX Inc., 21. kolovoz 2007., , (4. veljač a 2009.) [249] -, Tuneprint, Tuneprint Corp., 2001., , (4. veljač a 2009.) [250] Petschulat, S. I. D., alphaWorks : BabbleNet : Overview, IBM, 28. studeni 2001., , (4. veljač a 2009.) [251] -, Pidgin, the universal chat client, -, 3. veljač a 2009., , (4. veljač a 2009.) [252] -, mozdev.org - jabberzilla: index, Mozdev.org, 4. veljač a 2009., , (4. veljač a 2009.) [253] Reptile Documentation Team, Reptile - Reptile, OpenPrivacy.org, 2003., , (4. veljač a 2009.) [254] -, Cerulean Studios: Creators of and Trillian Pro Instant Messengers, , 2009., , (4. veljač a 2009.) [255] -, , Bitzi Corporation, 2008., , (4. veljač a 2009.) [256] -, Radio UserLand: Tune Into Radio, UserLand Software, 2009., , (4. veljač a 2009.) [257] Herman, I., Swick R., Brickley D., Resource Description Framework (RDF) / W3C Semantic Web Activity, W3C, 9. svipanj 2008., , (4. veljač a 2009.) [258] Powers, S., What Are Syndication Feeds, O'Reilly, 2005.. [259] -, What Is RSS? RSS Explained - www.WhatIsRSS.com, -, 14. srpanj 2007., , (4. veljač a 2009.) [260] Labalme, F., Burton K., OpenPrivacy Initiative, OpenPrivacy.org, 12. veljač a 2002., , (6. veljač a 2009.) [261] Foner, L., A brief introduction to Yenta, -, 10. veljač a 2009., , (6. veljač a 2009.) [262] Frampton, E., Herzberg J.C., GloNetComp, Global Network Computers, 27. veljač a 2001., , (6. veljač a 2009.) [263] Waldman, M., Rubin A. D. & Cranor L. F., Publius: A robust, tamper-evident, censorship-resistant web publishing system, Proceeding of 9th USENIX Security Symposium, 2000..

Tedo Vrbanec FOI, 2010. 179 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[264] Waldman, M., Rubin A. D. & Cranor L. F., Publius Home Page, , 19. ožujak 2001., , (7. veljač a 2009.) [265] -, Bloglines, IAC Search and Media, 19. lipanj 2008., , (8. veljač a 2009.) [266] -, Podcast - Wikipedija, Wikimedia Foundation, 6. prosinac 2008., , (8. veljač a 2009.) [267] -, Google Reader - Wikipedia, the free encyclopedia, Wikimedia Foundation, Inc., 28. siječ anj 2009., , (8. velja č a 2009.) [268] -, Google Reader - Tour, Google, 2009., , (9. veljač a 2009.) [269] -, About : Blogs.com, Six Apart Ltd., 2008., , (9. veljač a 2009.) [270] Box, D. I. D., Simple Object Access Protocol (SOAP) 1.1, WWW Consortium (W3C), 8. svibanj 2000., , (9. veljač a 2009.) [271] Gudgin, M. I. D., SOAP Version 1.2 Part 1: Messaging Framework (Second Edition), WWW Consortium (W3C), 27. travanj 2007., , (9. veljač a 2009.) [272] Christensen, E., Web Services Description Language (WSDL) 1.1, WWW Consortium (W3C), 15. ožujak 2001., , (9. veljač a 2009.) [273] -, XML-RPC Home Page, UserLand Software, Scripting News, 3. srpanj 2003., , (9. veljač a 2009.) [274] -, AllCast: www.allcast.com, AllCast, -, , (10. veljač a 2009.) [275] -, Video Player - Free video and audio podcast player and torrent client, Participatory Culture Foundation, -, , (11. kolovoz 2009.) [276] Vatton, I., Amaya Home Page, INRIA, W3C, 30. siječ anj 2009., , (10. veljač a 2009.)

Tedo Vrbanec FOI, 2010. 180 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

[277] -, INRIA : Institut National de Recherche en Informatique et en Automatique, INRIA, 6. veljač a 2009., , (10. velja č a 2009.) [278] Bos, B., Cascading Style Sheets, W3C, 25. studeni 2008., , (10. veljač a 2009.) [279] -, Blogger: Izradi besplatni blog, Google, 10. veljač a 2009., , (10. veljač a 2009.) [280] -, Welcome to [email protected], The Everything Development Company, 10. veljač a 2009., , (11. velja č a 2009.) [281] -, Manila: Web Publishing System, UserLand Software, 2009., , (11. veljač a 2009.) [282] -, MovableType.org - Home of the MT Community, Six Apart Ltd., 5. veljač a 2009., , (11. veljač a 2009.) [283] -, Movable Type: All Features, Six Apart Ltd., -, , (11. veljač a 2009.) [284] -, mozdev.org - mozblog: index, Mozdev Community Organization, Inc., 11. veljač a 2009., , (11. veljač a 2009.) [285] Gilbert, S. & Harper M., Wikipedia is not Wiki - Meta, Wikimedia Foundation, 27. kolovoz 2008., , (11. veljač a 2009.) [286] Cunningham, W., Wiki Wiki Web, -, 2. veljač a 2009., , (11. veljač a 2009.) [287] -, Wikipedia:Introduction - Wikipedia, the free encyclopedia, Wikimedia Foundation, Inc., 11. veljač a 2009., , (11. veljač a 2009.) [288] -, Welcome Visitors, WikiWikiWeb, 6. veljač a 2009., , (11. veljač a 2009.)

Tedo Vrbanec FOI, 2010. 181 Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

PRILOZI

I DISTRIBUIRANI RAČUNALNI SUSTAVI

„Kada govorimo o mrežama potrebno je odmah ukazati na razliku između pojma mreža računala i pojma distribuirani sustav. Kod mreže računala korisnici su izloženi stvarnom stroju. Različiti hardver i različiti softver u potpunosti su vidljivi korisniku. Ukoliko korisnik želi izvoditi program na udaljenom stroju mora se na njemu prijaviti i tamo ga izvoditi. Naprotiv distribuirani sustav, kao skup nezavisnih računala, korisniku izgleda kao jedan koherentni sustav. Distribuirani sustav obično ima jedan model ili paradigmu koji je predstavljen korisnicima. Za njegovu implementaciju odgovoran je sloj softvera na vrhu operacijskog sustava zvan 'middleware'. Dobro poznati primjer za distribuirani sustav je World Wide Web. Distribuirani sustav je u stvari sustav softvera izgrađen na vrhu mreže. Softver mu u velikoj mjeri daje kohezivnost i transparentnost. Dakle, razlika je u softveru, a ne u hardveru.“ [177] Mnoge su organizacije danas prisiljene koristiti distribuirane računalne sustave, a zbog obilježja djelatnosti kojom se bave. Ovdje se podrazumijeva da se distribuiranost odnosi kako na sklopovlje tako i na programsku podršku. Brojni su primjeri toga. Navedimo samo dva. 1. Da bi se djelotvorno nosile sa financijskim tržištem, različitim zakonskim propisima u različitim zemljama i efikasno djelovale 24 sata dnevno, velike međunarodne kompanije imaju programske sustave kojima koordiniraju svoje financijske aktivnosti. 2. Česta je potreba znanstvenika za zajedničkim radom većeg broja računala, čime se ostvaruju virtualna super-računala. Primjer tome su simulacije vremenskih pojava i prognoza ili prikupljanje i obrada ogromnih količina podataka kod akceleratora čestica (npr. CERN). Organizacije postaju sve ovisnije o svojim distribuiranim sustavima (aplikacijama i računalima). Tako u prvi plan dolazi pitanje pouzdanosti rada takvih sustava: treba predvidjeti kvarove hardvera i softvera. Redundantnost elemenata sustava može ponekad biti dovoljna da se sustav oporavi od svih osim najtežih kvarova. Od distribuiranih se sustava očekuje pouzdanost do te mjere da se ponaša predvidljivo i konzistentno, bez obzira na mjesto pristupa tom sustavu, tj. od lokacije s koje mu se pristupa. Cjelokupni

I Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta sustav mora biti u istom stanju, radeći ono za što je i oblikovan, s mogućnosti upravljanja samim sobom do te mjere da je ljudska intervencija potrebna samo u minimalnoj mjeri. Više od konzistentnosti, pouzdanost implicira postojanje dodatnih svojstava: 1. samoregulacije, 2. odaziva u stvarnom vremenu, 3. obnove podataka koji su postojali u sustavu u trenutku pada sustava, 4. sigurnost, 5. privatnost, 6. tolerancija sustava prema nepravilnom unosu podataka1. Ti su problemi, ipak, dobro poznati i otprije, iz nedistribuiranih sustava. Stoga provjerena rješenja za njih već postoje. Ključni tehnički problemi tiču se konzistentnosti i tolerancije prema greškama. Nemoguće je npr. razlikovati proces koji nosi/proizvodi grešku od onog koji ima „samo“ komunikacijske probleme; stoga će se uvijek raditi greške prilikom klasifikacije takvih procesa. Takva situacija može dovesti sustav u kaotično stanje u kome različite komponente sustava imaju različite poglede na stanje ili jesu u različitim stanjima, dakle ponašaju se nekonzistentno. Druga je briga usko povezana, a tiče se tehnika za postizanje dostupnosti i pouzdanosti rada sustava. Iako su one već opće poznate i razumljive, često nisu i korištene. Tako su mogući i relativno česti slučajevi da poznati sigurnosni propusti u izradi programskih proizvoda ostanu „nezakrpani“, omogućujući Internet crvima nesmetano širenje, inficiranje milijuna računala, njihovo izbacivanje iz rada, te uzrokuju zagušenje prometa na Internetu i nemjerljive štete organizacijama koje ovise o svojima računalnim distribuiranim sustavima, a kojih iz dana u dan ima sve više. Pri tome je ključni problem nedovoljna pažnja koja se poklanja činjenici da sigurnosne rupe postoje, tj. daleko nedovoljna svijest o značenju pouzdanosti sustava u organizacijama. Srećom, taj će faktor sve više utjecati na kompetitivnost organizacija, te će one biti prisiljene ili to već jesu, uhvatiti se u koštac s tim problemom. Kao primjer problema koje imaju distribuirani sustavi navest ćemo i telekomunikacijske organizacije koje su već imale znatne probleme sa programskom podrškom koja sadrži greške, uzrokujući pad dijelova telekomunikacijskih sustava. Najčešće se to događalo kao posljedica neke određene greške (ili kombinacije grešaka), ili

1 Unos podataka može se odvijati putem senzora ili korisnika.

II Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta nakon unapređenja programske podrške na digitalnim centralama. Takve primjere imamo posvuda, od SAD-a (1989./91.) do Hrvatske, konkretno HT-a 2003. god. Kada se riješe navedeni problemi, dolazimo do pitanja sigurnosti za koje još uvijek ne postoje adekvatna rješenja. Dugo vremena, možemo reći desetljeća, operacijski se sustavi i računalne mreže izgrađuju na način da je presudna jednostavnost i brzina njihova rada, sve na račun konzistentnosti i otpornosti na greške. Ipak, velika je cijena toj strategiji već plaćena te su u posljednje vrijeme učinjeni veliki pomaci u tom smjeru. Pouzdanost tehnologije postaje stvar standarda i nezaobilazna tema. Distribuirani računalni sustavi već su odavno kritični za neke segmente društva, poput zračnog prometa, zdravstva i državnog aparata. Dajući im pouzdanost i otpornost na greške, slobodno možemo konstatirati da je naša mrežna budućnost u rukama distribuiranih računalnih sustava.

III Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

II ARPANET

Krajem 1950.-tih, usred hladnog rata, američko Ministarstvo obrane1 (DoD) željelo je posjedovati komandno-upravljačku mrežu koja bi preživjela nuklearni rat. U to vrijeme, vojne su komunikacije koristile javnu telefonsku mrežu, koja je smatrana ranjivom zbog njene strukture, prikazane na slici 1 (str. 5), koja nije sadržavala dovoljno redundantnosti. Iz slike je vidljivo da onesposobljavanje nekoliko međuzonskih ureda raspada mrežu na mnoštvo međusobno izoliranih komunikacijskih otoka. S ciljem iznalaženja rješenja problema ranjivosti telefonske mreže kojom se služila i američka vojska, oko 1960.-te DoD je dodijelilo ugovor korporaciji RAND. Kao jedan njezin zaposlenik, Paul Baran došao je na ideju stvaranja sustava oblikovanog na način da je jako distribuiran i otporan na greške, kao što je to vidljivo iz slike 2 (str. 6). U ovom su se prijedlogu udaljenosti između bilo koja dva prespojna ureda znatno povećale. Analogni signali ne mogu putovati na tako velike udaljenosti bez izobličenja. Stoga je Baran predložio upotrebu digitalne tehnologije prespajanja paketa. Detaljni izvještaji predočeni DoD-u svidjeli su se Pentagonu koji je zatražio od AT&T, tadašnjeg telefonskog monopolista2 u SAD-u, da izgradi prototip. AT&T je odbacio Baranovu ideju kao neizvedivu. Nakon nekoliko godina DoD još uvijek nije imalo bolje rješenje od onog kojim je bio nezadovoljno. U međuvremenu je 1957. godine osnovana3 ARPA (eng. Advanced Research Projects Agency). Ona u početku nije imala niti svojih znanstvenika niti svojih laboratorija, tek svoj ured i skromni proračun. Radila je na taj način da je potpomagala garancijama i ugovorima sveučilištima i kompanijama koje su imale obećavajuće projekte. Prvih nekoliko godina ARPA je pokušavala otkriti svoju zadaću, ali je do zaokreta došlo 1967. godine kada se okrenula mrežama. Obratila se stručnjacima iz tog područja. Jedan od njih, Westley Clarc, savjetovao im je izgradnju podmreže s komutacijom odnosno prespajanjem paketa, dodavajući svakom čvoru njegov vlastiti usmjernik. Larry Roberts je ideju predstavio na jednom simpoziju krajem 1967. godine. Na njegovo iznenađenje, još je jedan rad na istu temu prezentiran i to ne kao ideja već kao potpuno implementiran sustav u Nacionalnom laboratoriju za fiziku u Engleskoj. Iako je bilo riječ o samo nekoliko računala unutar kampusa, projekt je pokazao da je paketno povezivanje ostvarivo. Dapače, na

1 DoD = Department of Defence. 2 U to vrijeme AT&T je bio najveća i najbogatija korporacija u svijetu. 3 Nakon sovjetskog lansiranja Sputnika, prvog umjetnog satelita 1957. godine, ustanovilo se je da su Pentagonova sredstva za istraživanje razgrabljena od tri korisnika: kopnena vojska, mornarica i zrakoplovstvo. Stoga je osnovana nova istraživačka organizacija.

IV Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta simpoziju je bio citiran Baranov (odbačen) projekt. Rezultat je odluka o nastanku ARPANET-a. ARPANET-ova podmreža je bila sastavljena od mini-računala nazvanih IMP (engl. Inteface Message Processor) povezanih komunikacijskim linijama kapaciteta prijenosa od 56 kbps. Radi ostvarenja visoke pouzdanosti, svaki IMP je bio povezan s barem još druga dva IMP-a. Podmreža je bila datagramska, dakle, ako je neka od linija u prekidu, (čitaj: uništena), komunikacija se automatski preusmjerava preko alternativnih putova. Svaki čvor mreže sastojao se od IMP-a i čvora, u istoj sobi, spojenih kratkim kablom. Čvor je mogao slati poruke do veličine 8063 bita prema IMP-u gdje se poruka razbijala u pakete najveće moguće veličine od 1008 bitova i neovisno jedan od drugog prosljeđivani prema odredištu. Svaki je paket u cijelosti priman prije nego je prosljeđivan dalje. Stoga je to prva elektronička podmreža s komutacijom paketa tipa spremi-i- proslijedi. Dalje je, vrlo pojednostavljeno, stvar natječaja i implementacije1. Krajem 1969. godine, ARPANET je činilo četiri sveučilišta, odabrana po dva kriterija. Prvi je taj što su sva četiri imala već veći broj ugovora s ARPA-om, te stoga jer im je računalna oprema bila međusobno potpuno nesukladna. Krajem 1972. ARPANET se već sastojala od 34 čvora, povezujući najveća američka sveučilišta i istraživačke centre. Pored snažnog razvoja mreže, ARPA je pokrenula istraživanja u područjima satelitskih mreža i mobilnih paketnih radio mreža. U jednom od eksperimenata2 uočilo se da postojeći ARPANET protokoli nisu prikladni za komunikaciju preko više mreža, te su potaknuta istraživanja u domeni protokola. Ona su rezultirala izradom TCP/IP protokola (Cert i Kahn, 1974.), koji su posebno oblikovani za komunikaciju između mreža, što je bilo od presudnog značenja za sve veću obitelj mreža – dijelova ARPANET-a. Kako bi potaknula prihvaćanje novih protokola, ARPA je dodijelila niz ugovora Sveučilištu u Kaliforniji u Berkley-u3 radi integriranja u Berkley UNIX. To je uspješno urađeno s 4.2BSD UNIX-om te je odmah i implementirano na mnoštvu Sveučilišta. Vremenom se je sve više lokalnih mreža uključivalo u ARPANET. Traženje čvorova je postalo vremenski zahtjevno te je pokrenut DNS (engl. ) sustav radi organiziranja čvorova u domene i spajanja imena čvorova sa stvarnim IP adresama. DNS je postao općenit distribuirani sustav baza podataka za pohranu mnogih informacija vezano uz imenovanje.

1 Andrew S. Tanenbaum, Computer Networks, Prentice Hall, 2003. str. 50. - 56. 2 Čuveni je eksperiment obavljen tako da su s kamiona koji se vozio po Kaliforniji, posredstvom paketne radio mreže slane poruke u sveučilište SRI, pa su preko ARPANET-a prenesene na istočnu obalu SAD-a, te na kraju putem satelitske veze odaslane do Sveučilišta u Londonu. 3 University of California at Berkley.

V Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

III KATEGORIJE PRIMJENA P2P MREŽA S PRIMJERIMA

Mreže istovrsnih entiteta imaju veliku širinu primjene. S obzirom na to, teška je zadaća načiniti kategorizaciju koja bi bila „najbolja“. S obzirom da je mnogo projekata, alata, programa, tehnologija i vrsta primjene, treba unaprijed ukazati da neki navedeni primjeri pripadaju u više kategorija. Stoga se opisuju samo u prvoj u kojoj se navode, a u svakoj sljedećoj kategoriji se poziva na prethodni opis. Nadalje, njihova brojnost nalaže sažeti opis, tek toliki da se stekne opća slika o modalitetu primjene. Dakle, primjene mreža istovrsnih entiteta u neznanstvene svrhe možemo razvrstati u sljedećih 19 kategorija koje će se u nastavku i detaljizirati: 1. čvorovi – agenti, 2. suradnja, 3. razvojne okoline, 4. uređaji kao čvorovi, 5. distribuirano računalstvo, 6. distribuirani objekti, 7. distribuirane tražilice, 8. dijeljenje datoteka, 9. igre, 10. infrastruktura, 11. Internetski operacijski sustavi, 12. distribucija licenciranih sadržaja, 13. platforme za dopisivanje, 14. metapodaci, 15. upravljanje ugledom i imovinom, 16. sigurnost, 17. poslužitelji i servisi kao ravnopravni istovrsni čvorovi, 18. superdistribucija (višekanalna razmjena sadržaja) i 19. stvaranje web sadržaja.

VI Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

ČVOROVI - AGENTI

Anthil Anthil, u prijevodu mravinjak, eksperimentalni je okvir koji su u suradnji izradili djelatnici dva sveučilišna odjela: Odjel za računalne znanosti Sveučilišta u Bologni (Italija) i Odjel za telematiku Sveučilišta za znanost i tehnologiju u Trondheimu (Norveška). Cilj mu je pojednostaviti P2P razvoj i implementaciju aplikacija po oslobađanju programera od svih nižih razina detaljizacije, uključujući komuniciranje, sigurnost i raspoređivanje poslova „mrava“ tj. čvorova. Anthil se temelji na više-agentnom sustavu (engl. MAS = Multy-Agent System) koji koncepcijski teži ka implementaciji evolucijskih tehnika koji obilježavaju prirodne sustave. Anthil za dijeljenje datoteka koristi upravo evolucijski algoritam [178], a načinjen je i prototip, implementiran u stvarnom mrežnom okruženju. [179] Infobot Infobot je on-line usluga prikupljanja činjenica, realizirana je u Perlu, a oslanja se na Internet Relay Chat (IRC) protokol. Činjenice koje prikuplja naziva „faktoidima“ (engl. factoids). Predstavlja potencijalno koristan alat za on-line istraživanja. [180] International Interactive Commerce International Interactive Commerce, Ltd (IIC) je tvrtka koja stvara poslužiteljsku programsku podršku za stvaranje distribuiranog sustava putem Interneta. IIC koristi programske agente kojima razlaže i razašilje veće datoteke, podatke i aplikacije, te ih na odredištu ponovo sastavlja. Pri tome koristi neiskorištene dijelove komunikacijskog kanala prema Internetu za dostavu rastavljenih pa ponovo sastavljenih paketa krajnjim korisnicima. Takav način distribucije pruža rješenje za isporuku velikih količina podataka, bez zagušenja komunikacijskog kanala ili bez potrebe povećanja propusnosti komunikacijskog kanala. Tvrtka takav način distribucije opisuje kao optimizirano korištenje trenutno neiskorištenih mrežnih resursa. Poslužiteljska programska podrška pod nazivom Distribuirani Internet poslužitelj (engl. Distributed Internet Server), sukladna je Javi 2, te ne zahtijeva promjenu postojećeg programa ili preoblikovanje sustava postojećih poslužitelja. U timu za istraživanje i razvoj IIC-a rade znanstvenici ranije zaposleni u IBM- u, Sprint-u, GE-u, GTE-u, SilkNet-u i Xerox-u. Prompt2U Prompt2U je tehnologija koja omogućuje dijeljenje resursa i ubrzanje prometa unutar mrežne infrastrukture. Koncept se temelji na instalaciji programske podrške

VII Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

(agenta) na svako računalo u mreži, radi upravljanja resursima. Ovo je rješenje potpuno prilagodljivo i nema centraliziranog usmjeravanja, što povećava pouzdanost mreže. Yenta Yenta je potpuno distribuirani sustav istovrsnih entiteta koji autonomno utvrđuje korisnikove interese te na temelju toga automatski stvara diskusijske grupe putem kojih korisnici koji dijele iste interese, mogu u stvarnom vremenu razmjenjivati poruke, kako pojedinačno, tako i prema grupi. Sustav je nastao kao dio doktorske disertacije Leonarda Fonera na MIT Media Lab's Software Agents grupi. Yenta demonstrira kako se kombiniranjem distribuiranog dizajna sa uporabom kriptografije i upravljanjem reputacijom korisnika, može riješiti mnoge probleme, poput zaštite osjetljivih podataka od neovlaštenog pristupa.

SURADNJA

1stWorks 1stWorks Corporation pruža interaktivnu platformu za suradnju istovrsnih entiteta koja se temelji na vlastitoj patentiranoj kolaborativnoj tehnologiji adresiranja čvorova mreže istovrsnih entiteta [181]. Klijentima – čvorovima mreže omogućeno je: dijeljenje datoteka metodom povlačenjem i ispuštanja, razmjena poruka, interaktivne tekstualne poruke, govorne veze i međusobno pregledavanje web sadržaja sudionika - korisnika na mreži. Kompletna usluga temelji se na dvije komponente: prva omogućuje da se na temelju povezanosti na Internet, bez ikakvih poslužitelja, obavlja komunikacija vezana uz prodaju i usluge koristeći se Java apletima za stvaranje neposrednih veza; druga komponenta omogućuje dinamičko adresiranje. HIVE Alberg Software razvija kolaboracijsku P2P platformu koja se temelji na Sunovoj JXTA tehnologiji [182]. Za razliku od Lotus Notesa i drugih aplikacija za upravljanje kolaborativnim poslovnim procesima, ova platforma pod nazivom HIVE, djeluje bez korištenja središnjeg ili središnjih poslužitelja za reguliranje procesa ili pohranjivanja podataka. Platforma dolazi opremljena sa komponentama za održavanje i administriranje raznolikih mogućnosti potrebnih kolaborativnim alatima, poput razgovora, sustava trenutnih poruka, dijeljenja datoteka, zajedničko i osobno korištenje rasporedima i kalendarima i drugim mogućnostima.

VIII Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Bioinformatics.org Bioinformatics.org je neprofitna organizacija osnovana 1998. godine pri University of Massachusetts Lowell s ciljem stvaranja programske podrške otvorenog kôda za bio- informatičke potrebe i primjene [183]. To se ostvaruje na način da se stvaraju i drže javno dostupnim informacije vezane uz biologiju. Grupa ima stotine članova koji rade na mnogim proizvodima, od kojih se dva, (Chinook: P2P system using JXTA i Smith- Waterman on GreenTea), koriste za izgradnju kolaboracionih P2P alata za suradnju bio- informatičkih distribuiranih aplikacija. Collanos Workplace Ova radna okolina koja se temelji na P2P tehnologiji ima za cilj da virtualna suradnja bude što je moguće više jednostavna, sigurna i praktična [184]. Za nekoliko minuta može se pristupiti ili dati pristup dokumentima, pokrenuti on-line diskusije, upravljati zadacima, a sve u jednoj radnoj okolini koja koristi P2P tehnologiju. Collanos Workplace „omogućava rad bilo gdje, bilo kad, u on-line i u off-line načinu rada“ [184]. Platforma je namijenjena sve većem broju timova čiji su članovi preopterećeni informacijama koje razmjenjuju raznim komunikacijskim kanalima, te zagušeni prekobrojnom elektroničkom poštom. Najveći interes za korištenje platforme trebali bi pokazivati timovi sastavljeni od članova više organizacija. Osnovna je verzija besplatna i dostupna je za Windows, Mac i Linux operacijske sustave. Colloquia Colloquia je P2P alat za suradnju s ugrađenim sučeljem za pregledavanje mreže i podrškom za samostalno organiziranje korisnika u grupe [185], a temelji se na Javi. Korisnici komuniciraju prvenstveno putem P2P tekstualnih poruka, a mogu dijeliti lokalne resurse ili datoteke. Colloquia je izvorno razvijen uz pomoć britanske stipendije za visoko obrazovanje, a inspiriran je teorijama o važnosti konverzacije u ljudskim aktivnostima, kao i na važnost konteksta u kojem se konverzacije odvijaju. Colloquia je zamišljen kao alat za raspodijeljeno učenje, za aktivnosti kao što su zadavanje zadataka od strane nastavnika, zatim usmjeravanje konverzacija prema rezultatu, organiziranje čvorova u studijske cikluse ili korištenjem programske podrške kao alata za upravljanje projektom. Colloquia je besplatan alat za neprofitne obrazovne ustanove. Podržava sve relevantne operacijske sustave1.

1 Windows obitelj: 95/98/98SE/ME/NT/2000/XP/Vista, zatim MacOS X, AIX, Solaris, Linux, HP-UX, Unix i druge platforme koje imaju podršku za Javu.

IX Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta eZmeeting eZmeeting je komercijalna P2P aplikacija za suradnju čija je zadaća omogućavanje virtualnih sastanaka. Njegove osobine su [186]: zajedničko dijeljenje zaslona u stvarnom vremenu, dopisivanje (engl. chat), dijeljenje datoteka, dodjeljivanje oznaka dokumentima, zajedničko stvaranje crteža i trodimenzionalnih modela, dijeljenje ideja, stvaranje bilješki i međusobno korisničko slanje datoteka. Groove Groove Networks osnovao je kreator Lotus Notesa, Ray Ozzie. Groove je groupware aplikacija za suradnju grupa koja im omogućuje ad-hoc suradnju. Tvrtka Lotus taj tip aplikacije voli nazivati peerware. Ujedno, Groove omogućuje članovima grupe da međusobno dijele i uređuju dokumente u stvarnom vremenu, uz korištenje razvijenih sigurnih mehanizama. Svi dokumenti, poruke i programi grupe pohranjuju se i repliciraju preko korisničkih računala. To omogućuje da se svim materijalima, bez obzira od kojeg člana grupe, može pristupiti u on-line i off-line načinu rada. Microsoft je 10. ožujka 2005. godine kupio Groove Networks, te je Groove integrirao u Microsoft Office 2007, promijenivši mu ime u Office Groove 2007 [187]. ICQ ICQ (engl. I Seek You) je besplatan komunikacijski klijent istoimene mreže istovrsnih entiteta koji podržava prijenos datoteka, trenutne poruke, razgovore, e-poštu, govorne poruke, telefoniju, SMS, te niz drugih dodataka. Korisničke veze se provjeravaju preko ICQ poslužitelja, a on-line status korisnika se, prema njegovu izboru, objavljuje i na web stranicama. ICQ nudi opsežan set alata za programere i groupware sistem administratore, dodatke za web stranice, te za razvoj i primjenu alata za modificiranje ili stvaranje novih dodataka i sučelja zasnovanih na ICQ API (engl. Application Programming Interface). SpinXpress SpinXpress je programska podrška za umrežavanje koja omogućava siguran i neposredan rad osoba preko Interneta [188]. Korisnici mogu razmjenjivati sadržaje, obrasce i sinkronizirati podatke te dijeliti velike datoteke bilo koje veličine. SpinXpress funkcionira i preko vatrozida, bez potrebe za promjenom sigurnosne politike i bez potrebe za stručnom informatičkom podrškom. WebDAV WebDAV (engl. Web-based Distributed Authoring and Versioning) je skup proširenja za HTTP protokol koja dopušta korisnicima da suradnički uređuju i upravljaju

X Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta datotekama na udaljenom web poslužitelju [189]. Trend pokretanja web poslužitelja na sve većem broju računala, pa i na prijenosnicima, znači da se WebDAV može koristiti za dijeljenje datoteka i druge P2P namjene.

RAZVOJNE OKOLINE

Anthill – predstavljen je u poglavlju Čvorovi - agenti, str. 7. Base One International Base One razvija programske alate i middleware1 za razvoj P2P aplikacija [190]. Kompanija koristi svoju patentiranu tehnologiju kako bi dopunili Microsoft Visual C++ i MFC klase i omogućili spajanje na sve postojeće baze podataka, uključujući SQL Server, Access, Sybase, IBM DB2, Oracle i SQL Anywhere. Programski proizvodi poput BazeOne Internet Server (BIS) i drugi se temelje na tehnologiji istovrsnih entiteta, s arhitekturom tzv. „bogatih klijenata“ (engl. Rich Client Architecture). Kompanija ima značajne klijente, poput Deutsche Bank, koja primjerice koristi BaseOne za stvaranje virtualnog superračunala koje ima ulogu velikog računala (engl. mainframe). Biz2Peer Technologies / Polymita Technologies Biz2Peer je kompanija koja je razvijala platformu za elektroničku trgovinu koja se temelji na mreži istovrsnih entiteta [191]. Platforma se može koristiti za izradu e- commerce i Supply Chain Management sustava. Arhitektura platforme je dizajnirana na način da riješi mnoge nedostatke i probleme centraliziranih platformi. 2004. godine tvrtku je kupila Polymita Technologies i nije poznato koliko se ta platforma koristi kao temelj za programske proizvode novog vlasnika [192]. Mithral Communications & Design Mithral proizvodi razvojne alate pod zajedničkim nazivom Cosm [193]. Cosm Phase 1 je skup protokola i otvorenih aplikacija dizajniranih kako bi se dozvolilo distribuiranim računalima da rade zajedno na projektima, bez obzira koje prirode oni bili (matematičke kalkulacije/proračuni, animacije, ili „obično“ zajedničko pisanje). Cosm izrađuje i biblioteke, API, kao i standarde koji su potrebni da bi aplikacije bilo moguće lako razviti za svaku vrstu sustava. Mithral je izdao Software Development Kit za klijente i poslužitelje kako bi programerima omogućio pisanje velikih klijent-server aplikacija, uključujući i one tipa distribuiranog računalstva ili peer-to-peer aplikacije.

1 Middleware je računalni softver koji povezuje komponente softvera ili aplikacija. On je smješten između aplikacijskog softvera koji radi na različitim operacijskim sustavima.

XI Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Terazima Terazima kao tvrtka stvara programske proizvode koji omogućuju upravljanje distribuiranim resursima i rješenja koja se temelje na tehnologiji distribuiranog računalstva [194]. Terazimin meta P2P klijent omogućuje istovremeni pristup ka više mreža istovrsnih entiteta, rezultirajući većim pozitivnim rezultatima pretraživanja i optimiziranim prijenosom datoteka. TeraPlatform je tvrtkin okvir (engl. framework) distribuiranog računarstva za izgradnju aplikacija. TeraDrive je rješenje distribuiranog upravljanja pohranom podataka. Terazimina osnovna tehnologija omogućuje brz razvoj i implementaciju novih istorazinskih1 protokola i klijenata koji mogu pružati niz različitih usluga, uključujući: komunikacija klijent-poslužitelj, prikupljanje podataka i analize, on- line trgovina, promotivna integracija, dijeljenje video datoteka i distribuciju podataka i sadržaja unutar velikih poduzeća. WorldOS Corporation WorldOS je aplikacijski poslužitelj za decentralizirane programe poput Napster, Gnutella i FreeNet. U osnovi je strukturiran poput web poslužitelja [195]. Zahtjev za resursima dolazi na poslužitelj te se on usmjerava na svojevrstan korisnički program koji pruža resurs. Korisnički programi su obliku CGI skripti ili Servleta2. Općenito, WorldOS pruža dinamičke sadržaje u P2P okolini. Korisničko sučelje i engine povezani su TCP protokolom umjesto objektnim kôdom. Osnovni kôd dolazi s protokolom za WorldOS i HTTP protokolom, ali se može dodati podrška za Gnutella protokol, SMTP, Napster, ili bilo koji drugi protokol.

UREĐAJI KAO ČVOROVI

Bluetooth Bluetooth bežična tehnologija je de facto standard za bežične veze kratkog dometa između mobilnih telefona i drugih mobilnih i prijenosnih uređaja, posebno računalne periferije [196]. Bluetooth Special Interest Group sastoji se od tvrtki u telekomunikacijskoj, računalnoj i mrežnoj industriji koje su pokretačka razvoj tehnologije i glavni podupiratelji tržišta.

1 Istorazinski = peer-to-peer. 2 Servleti su klase Java programskog jezika koje dinamički obrađuju zahtjeve i stvaraju odgovore. Java Servlet API omogućuje razvijateljima programske podrške mogućnost dodavanja dinamičkih sadržaja na web poslužitelj koristeći Java platformu. Generirani je sadržaj obično HTML, ali može biti i druge vrste poput XML. Servleti su Java pandam ne-Java tehnologijama dinamičkih web sadržaja kao što su PHP, CGI, ASP i .NET. Servlet može kod transakcija koristiti HTTP cookies, session varijable ili URL prepisivanje.

XII Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Brazil Project Brazil je P2P Java tehnologija razvijena i testirana u Sunovom laboratoriju. Dostupna je za preuzimanje s weba [197]. Brazil projekt je web infrastruktura koja na siguran način povezuje ljude s informacijama, računalima i drugim uređajima dajući dodatnu snagu postojećim standardima i protokolima. Okvir omogućava da inače samostalni sustavi zajedno rade u web prostoru. Snažna autentifikacijska arhitektura omogućuje da se sa ekstraneta u otvorenom okruženju, a ipak na siguran način, pristupa intranetu. Projekt omogućuje da se umrežavanje proširi sa postojećih granica – krajnjih točaka mreže, na manje uređaje i nove programe, uz nasljeđivanje starih. Endeavor Endeavor proizvodi, pod zajedničkim nazivom Magi Suite, usredotočuju se na upravljanje dokumentima i kontrolu njihova korištenja putem weba, koristeći Java tehnologiju i standarde otvorenog koda kao što su HTTP, WAP/WML i XML [198]. Upravljanje i kontrola nad dokumentima uključuje daljinski nadzor, stvaranje multimedijskog materijala, izdavaštvo, dijeljenje, manipulacija, odobrenje, suradnju, sve to na siguran način i skalabilno preko weba. Jini Jini je proizvod tvrtke Sun Microsystems koji pruža jednostavne mehanizme koji omogućuju da se uređaji povežu i komuniciraju bez planiranja, instalacije, ili kakve druge ljudske intervencije [199]. Svaki uređaj pruža usluge drugim uređajima u zajednici koji ih mogu koristiti. Svi uređaji pružaju vlastita sučelja, što osigurava pouzdanost i kompatibilnost. Pored drugih značajki, Jini uključuje virtualni stroj za dijeljenje koristeći Jini servise i podršku za višedretveni rad pomoćnih programa. Sun nudi i potrebne specifikacije i programske primjere. SmartPeer SmartPeer je proizvod koji uključuje uređaj i mrežnu programsku podršku tehnologije istovrsnih entiteta [200]. Uređaj omogućuje trgovcima građevinskog materijala suradnju u mreži koja korisnicima pomaže u pronalaženju proizvoda. Uređaj radi na način da informacije s prodajnog mjesta ili skladišta prosljeđuje u distribuiranu mrežu. SmartPeer programska podrška preuzima upit s Interneta, i prevodi ga u upit koji lokalni sustav može razumjeti. Zatim prevodi rezultat upita nazad u obliku u kome će ga originalni pošiljatelj upita razumjeti. SmartPeers može nositi upite između članova u mreži istovrsnih čvorova, bez središnjeg poslužitelja, a za mobilno poslovanje se koristi Wireless Application Protocol (WAP).

XIII Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

RASPODIJELJENO RAČUNANJE

Base One International Base One International je ukratko opisan u poglavlju Razvojne okoline (str. 11). ChessBrain ChessBrain je globalno distribuirano mrežno super-računalo za šah koje je načinio programer Carlos Justiniano [201]. Taj distribuirani sustav koristi procesnu snagu računala povezanih na Internet. Osnova mreže su Simple Object Access Protocol (SOAP1) i XML koji se koristi za P2P okvir, omogućavajući da istovremeno stotine igrača bude povezano. Igrači prilikom prvog uključenja u mrežu najprije zatraže serijski broj te sa Interneta preuzmu klijenta koji omogućuje uključenje u igru. Klijent zatim ulazi u interakciju s glavnim ChessBrain poslužiteljem, koji je poznat i kao SuperNode poslužitelj. SuperNode poslužitelj služi kao dispečer koji grana svoje procese na stotine čvorova – istovrsnih entiteta na obradu. Može se koristiti čak šest vrsta klijenata2. C++ temeljeni inteligentni agent pod nazivom Shannon djeluje kao SuperNode dretva kako bi komunicirao sa Free Internet Chess Server (FICS). Osnovni ChessBrain poslužitelji daju dvije javno dostupne web stranice, chessbrain.net i distributedchess.net. Sve interakcije između ChessBrain SuperNode poslužitelja i PeerNode računala odvijaju se preko SOAP protokola, posredstvom HTTP-a, koji se koristi kao zajednički protokol koji omogućuje komunikaciju između ActionScript, C++, Java, Perl, PHP i programa koji se izvodi na Linux, MacOS X ili Windows operacijskim sustavima. DataSynapse DataSynapse je globalni pružatelj programske podrške za virtualizaciju [202]. Proizvodi pod nazivima GridServer i FabricServer virtualiziraju poslovno kritične aplikacije i adaptivno omogućavaju njihovo izvođenje u stvarnom vremenu preko njihove distribuirane infrastrukture. Pomoću svojih dijeljenih resursa, tvrtka klijentima pomaže smanjiti troškove i složenost njihove IT infrastrukture. Distributed.net Distributed.net je neprofitna organizacija, osnovana 1997, s ciljem promicanja i razvijanja raspodijeljenih računalnih programa [203]. Mreža je u međuvremenu narasla do

1 SOAP protokol će ukratko biti objašnjen u poglavlju Poslužitelji i servisi kao P2P čvorovi, str. 33. 2 Navedenih šest klijenata su: PHP preglednik igre, Java/Flash MX preglednik igre, C++/Win32/DirectX3D preglednik igre, Linux/Win32/Cygwin/MacOS X poslužiteljski čvor, PHP SOAP proxy (za povratak SOAP odgovora) i SOAP::Lite- Perl skupina testova koji obrađuju važne automatizirane zadatke ispitivanja.

XIV Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta tisuća korisnika širom svijeta koji „doniraju“ računalnu snagu svojih kućnih računala s ciljem akademskih istraživanja i projekata od javnog interesa. Globus Globus project razvija temeljne tehnike koje su potrebne za izgradnju računalnog grida [204]. Grid je po njima „otporna okolina koja omogućuje upravljanje diverzificiranim organizacijama te integraciju prikaza, računalnih i informacijskih resursa u raznorodnim lokacijama“. Grid aplikacije često uključuje velike količine podataka i/ili kalkulacija i često zahtijevaju sigurne načine dijeljenja resursa i izvan granica organizacije. Globus project ima dva glavna centra pri sveučilištima1, a za partnere ima značajne američke državne institucije2. MangoSoft Mangosoft lepeza programskih rješenja koriste patentiranu tehnologiju koja je poznata kao „pooling“3, a kako bi odgovorio na potrebe malih poduzeća, radnih grupa i velikih poduzeća [205]. Pooling je klasterska tehnologija koja koristi mrežu i resurse osobnih računala i radnih stanica za pružanje programskih usluga dostupnih s poslužitelja. Udruživanje koristi mrežu i resurse osobnih računala i radnih stanica za pružanje programskih usluga, servisa koje obično nude poslužitelji. Mangosoft proizvodi uključuju Cachelink, programski proizvod koji (prividno) povećava brzinu pristupa Internetu4 i njegovih sadržaja krajnjim korisnicima, te Mangomind, programski proizvod za dijeljenje datoteka namijenjen poslovnim korisnicima. Mithral Communications & Design Mithral Communications & Design je ukratko objašnjen u poglavlju Razvojne okoline, str. 11. Parabon Computation Parabon ima dva međusobno (specifično) ovisna „proizvoda“ [206]. Parabon Computation Grid je mreža distribuiranog računalstva koja na temelju ugovora s većim organizacijama, poput sveučilišta ili većih poduzeća, koristi neiskorišteno vrijeme računala. Davateljima resursa to daje dodatne prihode koje inače nikako ne bi imali, a

1 Argonne National Laboratory’s Mathematics and Computer Science Division i University of Southern California’s Information Sciences Institute. 2 National Computational Science Alliance, NASA Information Power Grid project, National Partnership for Advanced Computational Infrastructure, University of Chicago i University of Wisconsin. 3 Pooling bi mogli prevesti kao udruživanje. 4 Ne povećava se brzina pristupa Internetu već se unaprijed dohvaćaju sadržaji koji su potencijalno dostupni. Na taj način se komunikacijski kanal efikasnije koristi, tj. u većem je postotku vremena visoko iskorišten, posljedično dohvaćajući i potrebne i nepotrebne sadržaje.

XV Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta primatelju resursa to omogućava da se služi računalnim resursima znatno jeftinije nego da izgrađuje ili unajmljuje velike računalne centre. Drugi proizvod, Frontier Grid Server, efektivno i jednostavno omogućuje (trećim) korisnicima kojima se iznajmljuju resursi (procesna snaga), korištenje Parabon Computation Grid mreže, tj. korištenje njene procesne snage, uz naknadu. Korisnici tako plaćaju uslugu obrade prema potrebi, tj. prema količini izvedenih kalkulacija, a ne prema vremenu korištenja. REBOL REBOL (engl. Relative Expression-Based Object Language) je jezik koju je razvio Sassenrath Carl, dizajner operacijskog sustava Amiga. REBOL predstavlja platformu za Internet aplikacije [208]. Ideja je u tome da se pomoću tog jezika, koji je više od programskog jezika1, izrađuju aplikacije koje su vrlo male po programskom kôdu, a samim time i jeftinije za stvaranje, distribuciju, održavanje i unapređivanje. REBOL služi kao osnova za REBOL/Express - raspodijeljenu računalnu aplikaciju za Internet koja se sastoji od REBOL/Linka na strani klijenta i REBOL/Servera na strani poslužitelja. The REBOL/Core kernel (jezgra) radi na preko 40 različitih operacijskih sustava, podržava većinu vanjskih aplikacija i izvora podataka, te omogućuje direktne P2P veze, sinkronizaciju datoteka, suradnju i razmjenu poruka. SETI@Home SETI@Home je projekt kojem je cilj traženje dokaza o postojanju izvanzemaljskog života [209]. SETI@Home omogućava da svatko s računalom i Internet vezom sudjeluje u projektu. Na korisničko se računalo instalira spasitelj zaslona monitora (engl. screen saver), koji se aktivira, prema postavkama korisnika, kada korisnik aktivno ne koristi računalo. Tada se neiskorištena procesna snaga korisničkog računala koristi za odrađivanje djelića obrade paketa podataka koji se od središnjeg SETI@Home poslužitelja dobije putem Interneta. Naime, nakon primanja podataka od teleskopa, iste je potrebno računalno obraditi. Za to je potrebna velika računalna, procesna snaga te je ona glavni ograničavajući faktor projekta. Distribuiranim računalstvom taj je problem gotovo riješen, sve dok postoje kritična masa ljudi i njihovih računala koji žele sudjelovati u projektu. Na taj način, umjesto velikog i skupog super-računala, tisuće malih, osobnih računala radi istovremeno na različitim dijelovima analizirajući svoj dio podataka te obavljajući ukupni posao. Rezultate obrade šalju poslužitelju te preuzimaju novi paket podataka za obradu.

1 Pored toga što je REBOL programski jezik, on je i jezik za prikaz podataka i metapodataka. On nadalje omogućava konzistentnu arhitekturu za izračune, pohranu i razmjenu informacija. [207]

XVI Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Ubero Ubero je akronim od (engl.) universal binding and execution of redundant objects, odnosno, u slobodnom prijevodu, univerzalno povezivanje i pokretanje redundantnih objekata. U osnovi, Ubero je platforma za raspodijeljeno objektno računanje koja objedinjuje neograničeni broj računala spojenih na Internet kako bi se ostvarile određene kalkulativne zadaće [210]. ZetaGrid ZetaGrid je grid arhitektura otvorenog koda koja ne ovisi o korištenoj platformi1, a (trenutno) radi na dokazivanju Riemannove hipoteze, koja se smatra jednim od najznačajnijih neriješenih problema moderne matematike. Problem, koji se bavi distribucijom prim brojeva, neriješen je od 1859 unatoč značajnim nagradama koje su ponuđene za njegovo rješenje. Rješenje bi moglo dovesti do jednostavne metode za utvrđivanje da li je veliki broj prim brojeva. Činjenica da ne postoji jednostavna metoda je osnova većine današnjih sustava enkripcije. Na žalost, projekt je u fazi gašenja [211]. ZetaGrid je klijent koji djeluje lokalno, kao spasitelj zaslona monitora, a dostupan je za Linux, Windows 95/98/Me/2000/NT/XP, uz potrebnu podršku JRE (Java Runtime Environment).

DISTRIBUIRANI OBJEKTI

Alberg Software Alberg Software (HIVE) je ukratko opisan u poglavlju Suradnja, str. 8. XOBJEX XOBJEX je aplikacija za primjenu suradnje između čvorova istovrsnih entiteta, jednostavna i lagana za korištenje, na temelju Sunovog J2ME (Java 2 Micro Edition). Ovo je vrlo kompaktan sustav od samo 26KB koji koristi HTTP listener „slušatelja“ i HTTP agent, agenta za prijenos XML naredbe preko mreže ili Interneta koristeći port 80, standardna vrata za HTTP-a. XOBJEX [212] se može koristiti za izradu Web servisa za suradnju i interoperabilnost između umreženih uređaja, a može automatski otkriti nove usluge kada se pojave na mreži.

1 Platforma = sklopovlje + operacijski sustav (pojednostavljeno).

XVII Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

DISTRIBUIRANE TRAŽILICE

Filetopia Filetopia je besplatni komunikacijski program koji uključuje trenutne poruke, chat, e-poštu, snažan distribuirani datotečni sustav dijeljenja s tražilicom, on-line popis prijatelja i forum. Filetopia alat za dijeljenje datoteka uključuje javni ključ za šifriranje i izbor jake metode zaštite IP adresa svojih korisnika [213]. Grub Grub je klijent distribuiranog računalstva koji koristi tehnologiju istovrsnih entiteta za distribuirano web pretraživanje – kao web pauk (engl. web crawler). Raspodijeljena mreža ima mogućnosti na dnevnoj bazi pretraživati svaku aktivnu i dostupnu web stranicu na Internetu. Indeksiranje se vodi u bazi podataka centralizirano, na Grub poslužiteljima. Autori Gruba smatraju da je pretraživanje dio temeljne infrastrukture Interneta, a nije povezano iz sljedećih razloga: „nedostatka slobode, nedostatka zajedništva, nedostatka odgovornosti, nedostatka transparentnosti“ [214]. KaZaA KaZaA je P2P mreža za dijeljenje datoteka koja omogućuje korisnicima traženje i preuzimanje audio, video, slikovnih i tekstualnih datoteka koristeći jedan od tri sučelja: Kazaa Media Desktop Peer-to-Peer (P2P) klijent, Kazaa's Winamp Plug-in ili KaZaA.com web site. KaZaA distribuirana mreža je samo-organizirajuća ima sposobnost automatske transformacije snažnijih klijenata u super-čvorove koji su pak u stanju odgovarati na upite slabijih čvorova [215]. MusicBrainz.org The MusicBrainz XML Metadata Format je inicijativa pokrenuta s ciljem stvaranja sredstva za razmjenu meta-podataka koji opisuju medijske datoteke na Internetu [216]. Tijekom razvoja načinjeni su: rječnik za opis The MusicBrainz XML Metadata Format (bivši CD Index projekt), Dublin Core aplikacija i besplatan web servis koji koristi XML i Resource Description Framework (RDF) opisujući glazbene sadržaje (imena izvođača, redne brojeve na nosačima zvuka i druge meta-podatke koji opisuju glazbeni sadržaj, a preuzimaju se sa korisnikovog CD uređaja, MP3 uređaja, Vorbis uređaja ili nekog drugog klijenta). Sve je više aplikacija koje podržavaju MusicBrainz, poput FreeAmp, Picard, Jaikoz Tag Editor i Magic MP3 Tagger [217].

XVIII Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

NeuroGrid NeuroGrid sustav se sastoji od dva glavna elementa: programskog kôda1, mehanizma za učenje, koji prati aktivnosti korisnika te sukladno tome ažurira korisničke meta-podatke, te (drugi dio) usmjeravanje pretraga u distribuiranoj, decentraliziranoj mreži [218]. NeuroGrid pristup rezultat je dva osnovna nastojanja. Prvo je mogućnost da se podaci organiziraju u asocijativnom obliku, poput web stranica (za razliku od hijerarhijskih struktura u datotečnim sustavima). Drugo nastojanje je mogućnost izdvajanja podataka iz velikog distribuiranog mrežnog okruženja uz minimum napora. NeuroGrid nastoji osigurati općeniti semantički okvir kreiranjem i održavanjem popisa na koje su upite drugi čvorovi davali dobre odgovore u prošlosti. NextPage Nextpage platforma osigurava nekim svjetskim korporacijama koje su informacijski intenzivne vlastite prilagođene P2P mreže za dijeljenje datoteka. Poduzećima tako pruža sposobnost upravljanja i dijeljenja resursa na siguran način, distribucijom preko mreže u stvarnom vremenu, koristeći robustnu i proširivu aplikacijsku arhitekturu [219]. PLATFORMedia PLATFORMedia je razvio P2P distribuirani sustav i program za pretraživanje koji koriste računala korporativnog LAN-a, odnosno računalne resurse u vrijeme ne-korištenja računala, a kako bi automatski indeksirali sadržaj dokumenata, učinivši ih lakše dostupnima od strane korisnika u cijeloj mreži [220]. Aplikacija za pretraživanje koristi statističko zaključivanje i tehnike optimizacije sustavno gradeći tzv. „mentalne karte“ interesa svakog korisnika. Primjena skalabilne arhitekture omogućuje članovima mreže ne samo razmjenu datoteka, nego i upravljanje razmjenom znanja između čvorova. PLATFORMedia okolina je čvrsto integrirana sa Microsoft aplikacijama kao što su Word i Excel i zahtijeva Windows OS i Java2 Runtime Environment 1.3 (ili novije). Veriscape Veriscapeov IntelleCat (engl. Intelligent eCatalog Procurement Assistant) je globalni sustav upravljanja dinamičkim katalogom temeljen na znanju, koji profesionalcima omogućava pretraživanje, pronalaženje, prihvaćanje i implementaciju vlastite najbolje prakse, izrađene „po mjeri“ [221]. Adaptivna tehnika pretraživanja pohranjuje stanja uspješnih pretraživanja u obliku stablaste hijerarhijske strukture podataka. Ovi upiti spremljeni u stablastoj strukturi zajednički osiguravaju semantički

1 Engine je izraz za koji autor teško pronalazi zamjenu u hrvatskom jeziku. Stroj ili mašina jednostavno ne odgovara značenju.

XIX Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta okvir za reguliranje programa praćenja inventara i narudžbe upravljačkih mogućnosti. IntelleMatch je komponenta koja omogućuje IntelleCatu prilagodljivo pretraživanje. Veriscape proizvodi koriste Netcentric Virtual Infrastructure Supercomputing (NVSI) arhitekturu1. NVSI je dizajnirana za „plug and play“ unutar postojeće mreže i radi iznad standardnih operacijskih sustava, poput Unix, Linux i Windows (NT jezgre).

DIJELJENJE DATOTEKA

1stWorks 1stWorks je ukratko opisan u poglavlju Suradnja, str. 8. BadBlue BadBlue je linija poslužiteljskih programskih proizvoda osmišljenih na način da se bilo koja klijentska radna stanica transformira u snažan web poslužitelj s mogućnošću pretraživanja i s ugrađenim sigurnosnim značajkama za kreiranje i upravljanje korisničkih računa i zaporki te ograničavanje pristupa dijeljenim područjima i virtualnim mapama [222]. BadBlue sustav također pruža korisnicima mogućnost dijeljenja u stvarnom vremenu Microsoft Office datoteka, poput Excel proračunskih tablica i Word dokumenata, a podržava i CGI, ISAPI2 i PHP. Jezgra malog BadBlue footprint poslužitelja veličine je samo 65KB i namijenjen je za upotrebu u mobilnim i ugrađenim uređajima. BadBlue Personal Edition poslužitelj besplatno je dostupan za Windows platforme. Eudora E-mail klijent Eudora integrira P2P tehnologije u postojeće usluge e-pošte. Korisnici Eudore mogu dijeliti i sinkronizirati datoteke unutar mapa na njihovom lokalnom računalu. Eudora koristi Eudora Sharing Protocol (ESP) [223] koji brine da svaki korisnik ima zadnju inačicu datoteka i podataka te u slučaju potrebe sinkronizacije, datoteke prenosi na druge klijente unutar definirane korisničke grupe. Eudora podržava sve standardne funkcije e-mail klijenta, uključujući i mogućnost uvoza podataka iz drugih klijenata kao što su Outlook, Outlook Express i Netscape Messenger. Filetopia Filetopia je ukratko opisana u poglavlju Distribuirane tražilice, str. 18.

1 Za Netcentric Virtual Infrastructure Supercomputing (NVSI) arhitekturu tvrtka Veriscape je zatražila registraciju patenta. 2 ISAPI = aplikacijsko programsko sučelje za Internet poslužitelje, engl. Internet Server Application Programming Interface.

XX Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Gnutella Gnutella je potpuno distribuirana tehnologija za razmjenu informacija. Svaki Gnutella programski proizvod ujedno je i server i klijent u jednom, jer podržava dvosmjerni prijenos informacija. Dostupno je mnoštvo besplatnih klijenata, čija instalacija je sve što je potrebno da računalo postane potpuno funkcionalan Gnutella čvor. Bilo koji materijal koji traže drugi čvorovi proslijeđuju se s jedne stranice na drugu na način „pohrani i proslijedi“. Gnutella je projekt otvorenog kôda s klijentima većinom registriranima pod GNU1 licencom. Većina poznatijih klijenata popisana je u tablici 18.

Tablica 18: Gnutella klijenti

Ime klijenta Platforma Licenca Acquisition Mac OS X Apollon Unixoidi/KDE GNU GPL BearFlix Microsoft Windows vlasnički SW BearShare Microsoft Windows vlasnički SW Cabos Java GNU GPL FilesWire (P2P) Java vlasnički SW FrostWire Java GNU GPL giFT više-platformni GNU GPL GNU GPL, Gnucleus/GnucDNA Microsoft Windows GNU LGPL Gtk-Gnutella Uniksoidi, Mac OS X GNU GPL iMesh Microsoft Windows vlasnički SW KCeasy Microsoft Windows GNU GPL Kiwi Alpha Microsoft Windows adware LimeWire Java GNU GPL Morpheus Microsoft Windows vlasnički SW MP3 Rocket Java GNU GPL Java GNU GPL Poisoned Mac OS X GNU GPL Shareaza Microsoft Windows GNU GPL Symella Symbian OS GNU GPL XFactor Mac OS X GNU GPL Na temelju: -, Gnutella - Wikipedia, the free encyclopedia, Wikimedia Foundation, Inc., 22. siječanj 2009., , (28. siječanj 2009.) [224]

1 GNU je rekurzivna kratica za „GNU nije Unix“, engl. „GNU's Not Unix“.

XXI Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta iMesh iMesh je besplatan program i usluga koja korisnicima pomaže u pronalaženju sadržaja preko Interneta [225]. iMesh Ltd. pokušava pružiti potpuno legalan distribucijski kanal za svoje korisnike sklapajući distribucijske ugovore sa nositeljima autorskih prava što korisnicima uvelike olakšava pronalaženje i preuzimanje željenih datoteka. iNoize iNoize.com je web aplikacija i glazbeni servis koji omogućavaju korisnicima dijeljenje glazbe bez kršenja autorskih prava glazbenih tvrtki ili njihovih glazbenih umjetnika i izvođača [226]. U ovom slučaju se ne dijele i ne kopiraju datoteke materijala zaštićenih autorskim pravima već se za distribuciju koristi streaming, odašiljanje („emitiranje“) putem Interneta, najčešće na zahtjev. Tvrtka je intenzivno surađuje s glazbenom industrijom na izgradnji sustava e-poslovanja od kojeg će imati koristi sve strane uključene u pružanje usluge glazbe na zahtjev, dok glazbenim tvrtkama omogućuje novi način promocije, kupnje i distribucije glazbenih sadržaja. Glazba je na iNoize mreži organizirana u sustavu izvođač-album-naslov, za razliku od drugih mreža za dijeljenje koje se temelje na datotekama, njihovim nazivima i opisima. Glazba se kod streaminga prenosi u stvarnom vremenu, koristeći siguran, šifriran kanal, patentiran „okvir“ koji eliminira potrebu ili želju za kopiranjem glazbenih sadržaja. Glazbene popise, (engl. playlist) s omiljenim pjesmama mogu se stvarati koristeći glazbu od drugim članova. Korisnik može popise podijeliti sa drugim korisnicima, pa čak i kupiti njihove omiljene CD-e, on-line, ako to žele. iNoize aplikacija je dostupna za Windows i Linux temeljene platforme. KaZaA KaZaA je ukratko opisana u poglavlju Distribuirane tražilice, str. 18. MangoSoft Mangosoft je ukratko opisan u poglavlju Raspodijeljeno računanje, str. 14. Napster Napster je bio prvi besplatni servis za dijeljenje glazbenih datoteka, koji je radio od 1999. do 2001. godine. Nakon sudske tužbe glazbene industrije protiv njega prestao je s radom, da bi se vratio u obliku legalnog servisa za prodaju glazbe preko Interneta. Napster Free nudi dva modela: pretplatnički, gdje se za pretplatu od $9,99 USD mjesečno dobije pravo neograničenog preuzimanja pjesama i pojedinačni, gdje je svaku pjesmu moguće kupiti za $0,99 USD. Pomoću novog Napstera moguće je kupiti pjesme većine svjetskih glazbenih izdavača [227]. Pored glazbe u MP3 i WMA formatu, korisnici imaju mogućnost

XXII Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta neograničenog slušanja streaming glazbe, odnosno komuniciranja sa ostalim korisnicima preko ugrađenih programskih alata - modula. NextPage NextPage je ukratko opisan u poglavlju Distribuirane tražilice, str. 18. OpenNap OpenNap1 je projekt otvorenog kôda – slobodna verzija Napster poslužitelja [228]. OpenNap proširuje Napster protokol kako bi se omogućilo dijeljenje datoteke bilo koje vrste, kao i mogućnost povezivanja poslužitelja. OpenNap je poslužitelj za povezivanje klijenata, te ne sadrži klijentsku komponentu. WebDAV WebDAV je ukratko opisan u poglavlju Suradnja, str. 8.

IGRE

Magnetar Games Magnetar Games je tvrtka koja proizvodi više P2P razvojnih alata za igranje putem Interneta. Tako je FX Visuals razvojni alat za C++ Builder i Delphi koji se koristi za brzi razvoj Internet igara koje koriste DirectX tehnologiju [229]. Second Life „Second Life je virtualni svijet razvijen od strane Linden Laba. S više od 20 milijuna redovitih korisnika i puno više ljudi koji samo povremeno navrate, Second Life postao je jedan od najvećih internetskih servisa na svijetu. Ukratko bi ga se moglo opisati kao obični chat koji umjesto sličica ima 3D likove koji hodaju, skaču, prave grimase, vode ljubav, plešu pa čak i lete. No Second Life je zapravo mnogo više, s vremenom SL se razvio u kompleksnu društvenu mrežu koja ima vlastite zakone, moralne vrijednosti i, što je najvažnije, vlastiti ekonomski poredak. Zapravo je, uz socijaliziranje, glavni cilj SL-a stjecanje privatnog vlasništva što naravno uz sebe povlači i bavljenje nekim poslom kako bi se zaradilo što više Linden Dollara (L$).“ [230] Iako je Second life on-line igra u kojoj besplatno može sudjelovati bilo tko s ne pretjerano snažnim računalom i širokopojasnom vezom na Internet [231], Second Life je zapravo oblik on-line suradnje putem mreže istovrsnih entiteta [232], u čemu leži ključ njene popularnosti.

1 OpenNap = engl. Open Source Napster Server; Napster poslužitelj otvorenog kôda.

XXIII Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Xfire Xfire koristi izravnu komunikaciju od korisnika do korisnika, P2P komunikaciju putem UDP poruka [233]. Koristi se za preuzimanje datoteka, razmjenu osobnih datoteka, glasovni chat glas, i pisanje poruka i obavijesti. Xfire ima sposobnost samostalnog otkrivanja da li se računalo nalazi iza NAT uređaja1 i kakve je taj uređaj vrste, te se automatski tome prilagođava. Xfire omogućava transparentno stvaranje virtualnih lokalnih mreža preko kojih igrači mogu igrati mrežne igre te prvenstveno tome i služi.

INFRASTRUKTURA

Akamai Technologies Akamai Technologies proizvodi programsku podršku koja se temelji na tehnologiji istovrsnih entiteta, a njom se upravlja uslugom distribucije sadržaja. Jedan od osnivača kompanije je prof. Tom Leighton, ekspert za paralelne algoritme, primijenjenu matematiku i toleranciju kvarova u raspodijeljenoj mreži, koji radi u MIT2 laboratoriju za računalne znanosti. Akamai se specijalizirala za zadatke optimizacije velikih i složenih mreža, održavanje velikih mrežnih mjesta i poslužiteljskih usluga u radnom stanju te uz prihvatljivo opterećenje mrežne infrastrukture [234]. FreeFlow usluga isporučuje sadržaj putem globalne mreže koristeći sofisticirane algoritme koje su razvili istraživači s MIT-a, a glavni joj je zadatak praćenje stanja na Internetu, pronaći optimalne rute i omogućiti dostavu zahtjeva u svakom smjeru. Digital Parcel Service kombinira poboljšani sustav dostave sadržaja s mogućnostima upravljanja digitalnim pravima. Alliance Consulting Alliance Consulting je tvrtka za konzalting koja je specijalizirana za pružanje P2P rješenja. Groove Networks, programski sustav koji navedena tvrtka koristi, modularna je i distribuirana aplikacijska platforma usmjerena na poslovnu suradnju, ukratko je opisana u poglavlju Suradnja, str. 8. Alliance Consulting primjenjuje Dellov poslovni model za konzalting i specijalizirana rješenja za postojeće mrežne infrastrukture dodavanjem Groove programske podrške te tako omogućuje temeljnu P2P suradnju. Alliance Consulting također pruža prilagođena rješenja putem svojeg Web Development Center, kojeg obogaćuje sa Microsoft Distributed Internet Applications, Java 2 Enterprise Edition i Groove specialists, koristeći ih za sustave kao što su Enterprise Resource Planning (ERP)

1 NAT uređaj može primjerice biti usmjerivač (engl. router) ili vatrozid (engl. firewall). 2 Massachusetts Institute of Technology.

XXIV Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

– upravljanje resursima tvrtke, Customer Relationship Management (CRM) – upravljanje odnosima s kupcima i financijske aplikacije [235]. ChessBrain ChessBrain je ukratko opisan u poglavlju Raspodijeljeno računanje str. 14. FreeNet FreeNet je rasprostranjena mreža istovrsnih entiteta koja, kao i svaka mreža te vrste, ovisi o snazi članova - računala diljem svijeta koja stvaraju virtualno masivno spremište informacija otvoreno svakome za slobodno i necenzorirano objavljivanje ili prikazivanje informacija svih vrsta [236]. FreeNet nema centralizirani nadzor ili upravljanje bilo koje vrste i omogućava da se informacije objavljuju bez identifikacije izvora ili njegove fizičke lokacije. FreeNet Network se sastoji od mnoštva računala povezanih na Internet koja sva imaju pokrenutu programsku podršku jednog od dva naziva: FreeNet Server ili FreeNet Daemon koji omogućuje računalu da postane mrežni čvor, a čvorom se podrazumijeva mali, ali ravnopravni dio šire FreeNet mreže. Sustav osigurava fleksibilnu i snažnu infrastrukturu koja je sposobna podržavati široki spektar primjena. Groove Networks Groove Networks je ukratko opisan u poglavlju Suradnja, str. 8. Jabber Jabber je počeo kao platforma za razmjenu trenutnih poruka, ali je razvojem postao XML platforma za usmjerivanje (engl. routing) poruka [237]. Tvrtka Jabber (Jabber.com) izvorno je započela kao projekt otvorenog kôda (Jabber.org). JabberCentral je mjesto za zajednice koje razvijaju kako programsku podršku otvorenog kôda tako i onu komercijalnu, gdje oni razmjenjuju ideje, programski kôd te se međusobno reklamiraju. Jabber Developer Zone je mjesto gdje se objavljuju alati za razvoj programske podrške otvorenog kôda, kao i sam programski kôd. Veriscape Veriscape je ukratko opisan u poglavlju Distribuirane tražilice, str. 18. Glueware Glueware je platforma koja se oslanja na otvorenim Java i XML-temeljenim platformama za integraciju distribuiranih aplikacija i web-usluga [238]. Glueware je ujedno platforma za integraciju i povezivanje naslijeđenih sustava i aplikacija koje služe za suradnju i automatizaciju poslovnih procesa u realnom vremenu. Glueware je otvorene arhitekture te je s ciljem podrške poslovanju usklađen s industrijskim i tehničkim

XXV Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta standardima, protokolima i tehnologijama, kao što su SOAP, UDDI1, WSDL2, JXTA, BizTalk3, ebXML4, RosettaNet5, .NET, HTTP, XA6, XAML7, XSL8, WML9, Open Applications Group (Oasis), i dr. Oculus Oculus je P2P aplikacija koja se koristi za povećanje protoka informacija unutar većih organizacija, kao sredstvo za olakšanje procesa razvoja proizvoda i omogućavanje donošenja boljih odluka. Oculus pruža infrastrukturu, „ljepilo“ za integraciju različitih podataka, aplikacija, platformi i organizacija, u decentraliziranoj i sigurnoj računalnoj okolini. [241] Free Haven Project Free Haven Project je sustav koji osigurava dobru infrastrukturu za anonimne publikacije [242]. Elementi ovog sustava uključuju:

• izdavatelj dokumenta ostaje nepoznat,

• klijenti koji zatraže dokument, ne trebaju se identificirati,

• (trenutna) lokacija dokumenta je nepoznata. Sustav je dizajniran na osnovi „zajednice“ poslužitelja kojima je dan naziv servnet, pri čemu svaki poslužitelj pohranjuje podatke drugih poslužitelja što mu daje za pravo da svoje podatke može pohranjivati na drugim poslužiteljima servneta. Komunikacije između poslužitelja te između servneta i korisnika, oslanjaju na postojeću infrastrukturu te se nastoje stvoriti anonimni kanali. Sustav je namijenjen za pohranu podataka bez obzira na njegovu popularnost ili kontroverznost. Free Haven je osmišljen s primarnim ciljem zaštite anonimnosti i pouzdanosti postojanja dokumenata, stoga nije optimiziran za česte upite.

1 Universal Description, Discovery and Integration (UDDI) je na XML-u temeljen registar, neovisan o platformi, za sve tvrtke koje su u svijetu prisutne na Internetu. 2 WSDL - Web Services Description Language; opisuje sučelje (XML) usluge. 3 BizTalk poslužitelj je Microsoftov proizvod za izgradnju rješenja temeljenih na automatizaciji i upravljanju poslovnih procesa. 4 ebXML - XML za elektroničko poslovanje. 5 „RosettaNet je neprofitna organizacija posvećena zajedničkom razvoju i brzoj implementaciji otvorenih standarda za e-poslovanje za globalnu mrežnu trgovinu. RosettaNet standardi i usluge daju zajednički jezik za e-poslovanje i temelj su za integraciju kritičnih procesa između partnera u okviru globalnog opskrbnog lanca.“ [240] 6 „XA je dvosmjerno sučelje između transaction managera i resource managera. XA sučelje nije običan Application Programming Interface (API). To je sustav na razini sučelja između DTP (Distributed Transaction Processing) programskih komponenata.“ [239] 7 XAML = Extensible Application Markup Language je deklarativni XML-temeljen jezik koji se koristi za inicijalizaciju strukturiranih vrijednosti i objekata. 8 XSL = Extensible Stylesheet Language je skup jezičnih tehnologija za definiranje transformacije i prikaza XML dokumenata. 9 WML = Wireless Markup Language je jezik koji se temelji na XML-u namijenjen za uređaje koji implementiraju Wireless Application Protocol (WAP) specifikacije.

XXVI Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

INTERNETSKI OPERACIJSKI SUSTAVI

.NET Microsoft .NET „je platforma operacijskog sustava koja obuhvaća aplikacije, skupove alata i usluga.“ [243] .NET se sastoji od skupa gradbenih blokova usluga, od autentikacije korisnika, usluga (servisa) za pohranu datoteka, upravljanja korisničkim postavkama, do upravljanja kalendarom i mnogim drugim poslovima i uslugama. NET strategija je temeljena na web usluzi koja je izgrađena oko SOAP poruka s XML okvirom. Ideja je da Internet sam bude osnova novog operacijskog sustava koji je sposoban za pružanje aplikacijskih usluga koje su prethodno bile dostupne samo za stolna računala. .NET platforma je namijenjena u prvom redu za korištenje programerima, IT profesionalcima i poduzetnicima. [244][245] 2Peer 2PeerDesktop i 2PeerWeb sustav je P2P platforma za razvoj distribuiranih usluga temeljena na Javi i bogata mogućnostima: povezivanje s dinamičkim modularnim protokolima, identifikacija čvorova i resursa, otkrivanje i pretraživanje, proširivanje meta- podataka, XML UI definicije, usluga pristupa udaljenoj radnoj površini, i opsežna API dokumentacija. Snaga platforme i dostupnih usluga uvelike pojednostavljuje pisanje P2P aplikacija. [246] REBOL REBOL je ukratko opisan u poglavlju Raspodijeljeno računanje, str. 14. Chord Chord je ime projekta kojem je cilj stvaranje distribuiranog sustava koristeći se P2P tehnologijom. Pod istim imenom, Chord, prvotno je nastala svojevrsna hash funkcija za distribuirani sustav koja djeluje na način da postavlja ključeve na poslužitelje na decentralizirani način, tako da, posljedično, za pronalaženje nekog resursa treba izvršiti samo log (N) upita, pri čemu je N broj čvorova u sustavu. Hash funkcija je takve prirode da, iako je početno razvijena samo za stvaranje P2P datotečnih sustava, ima potencijal za korištenje u raznim P2P aplikacijama. U fazi razvoja početkom 2009. godine, projekt nije došao do zrelih aplikacijskih rješenja, pa ona nisu dostupna. [247]

DISTRIBUCIJA LICENCIRANIH SADRŽAJA

Akamai Akamai je ukratko opisan u poglavlju Infrastruktura, str. 24.

XXVII Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta iMesh iMesh je ukratko opisan u poglavlju Dijeljenje datoteka, str. 20. Napster Napster je ukratko opisan u poglavlju Dijeljenje datoteka, str. 20. RightsMarket RightsMarket je tvrtka koja pruža programsku podršku i usluge koje olakšavaju distribuciju komercijalnih digitalnih sadržaja distribuiranih preko mreže i weba. Programski proizvod koji je ujedno i proizvod i usluga, RightsPublish, je sustav upravljanja digitalnim izdavanjima i pravima intelektualnoga vlasništva, oblikovan na način da pruža sigurnu i pouzdanu platformu za distribuciju intelektualnog vlasništva te praćenje i naplatu njegova korištenja. Krajnji je rezultat na webu temeljena mreža digitalnih intelektualnih sadržaja gdje će svatko sudjelovati kao izdavač, potrošač ili oboje. [248] Tuneprint Audio snimke koje ljudima zvuče identično, u biti imaju jedinstvene psiho- akustične osobine. Geoffrey Schmidt, student Massachusetts Institute of Technology (M.I.T.), prvi je razvio algoritam koji stvara audio-otisak. Audio-otisak se ne mijenja sažimanjem zvuka ili promjenom njegova formata, odašilje putem radio-stanice, kodira u mp3 oblik ili se mijenja njegova boja pomoću uređaja poput ujednačivača (engl. equalizer). Audio otisak se ne mijenja čak ni u slučaju da snimku pustimo promijenjenom brzinom reprodukcije. Tuneprint koristi model slušanja čovjeka. Iz snimke se prikupljaju obilježja koja su najznačajnija, iznenađujuća ili najbitnija. Mogućnosti korištenja su velike. Primjerice, može se načiniti aplikacija koja se na temelju globalne količine reprodukcije u pojedinom trenutku može stvarati ljestvicu globalne popularnosti skladbi. Nadalje, mogu se načiniti snažni pretraživači glazbenih sadržaja, te preinake u postojećim modelima razmjene datoteka (sortiranje, kategorizacija, uklanjanje duplikata i sl.), digitalnim pravima, sustavima plaćanja te markiranja određenih glazbenih sadržaja zaštićenima, na zahtjev, u stvarnom vremenu. [249]

PLATFORME ZA DOPISIVANJE

BabbleNet BabbleNet je komunikacijski protokol u stvarnom vremenu, temeljen na XML-u. [250] Isti naziv ima i program za razmjenu trenutnih poruka koji taj protokol koristi. BabbleNet protokol korisnicima omogućava stvaranje decentraliziranih ad hoc mreža bez

XXVIII Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta njihova povezivanja na središnje poslužitelje. Korisnicima je nadalje omogućeno da podešavanjem konfiguracije stvaraju vlastite korisničke podmreže. BabbleNet podržava sve Java platforme. Distribucija je bila nekomercijalna, pod uvjetima IBM-ova alphaWorks licencnog ugovora, ali je razvoj BabbleNeta prekinut, a samim time i distribucija koja se odvijala slobodnim skidanjem datoteka s IBM-ova poslužitelja1. Pidgin Pidgin je chat program koji omogućuje prijavljivanje na više chat mreža istovremeno, tako da je njime primjerice moguće istovremeno se povezati na sljedeće mreže za razmjenu trenutnih poruka: AIM, ICQ, Google Talk, Jabber/XMPP, MSN Messenger, Yahoo!, Bonjour, Gadu-Gadu, IRC, Novell GroupWise Messenger, QQ, Lotus Sametime, SILC, SIMPLE, MySpaceIM, i Zephyr. Takve mogućnosti nema niti jedan drugi IM klijent do sada, a razvijen je za gotovo sve operacijske sustave današnjice. Pidgin ima i jako puno dodataka (engl. plug-in), koji mu dodatno povećavaju funkcionalnosti, koje su standardno: prijenos datoteka, postavke odsutnosti, promjena ikone pojedinom kontaktu, prilagođeni emotikoni, automatski odgovor, obavještavanje o trenutnom stanju kontakta (primjerice da li upravo piše ili je prestao pisati) [251]. ICQ ICQ je ukratko opisan u poglavlju Suradnja, str. 8. Jabber Jabber je ukratko opisan u poglavlju Infrastruktura, str. 24. Jabberzilla Jabberzilla je Jabber klijent koji se instalira na web preglednicima koji se temelje na Mozilli. Jabber je IM klijent koji se može povezati na I Seek You (ICQ), America Online Instant Messenger (AIM), Yahoo, Microsoft Network (MSN), i sve ostale protokole koristeći XML poruke Jabber protokola. Prema [252], razvoj ovoga klijenta je obustavljen. REBOL REBOL je ukratko opisan u poglavlju Raspodijeljeno računanje, str. 14. Reptile Reptile je Java i XML temeljena programska podrška za upravljanje i distribuciju sadržaja sa zaštitom privatnosti [253]. Proširiva, distribuirana i decentralizirana arhitektura integrira nekoliko Web i P2P tehnologija te ih kombinira u tzv. Hypersonic SQL (HSQL),

1 BabbleNet je jedan od proizvoda IBM-ovih alfa, testnih produkcija, odnosno IBM-ove istraživačke djelatnosti.

XXIX Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta bazu sa sustavom za upravljanje razmjenom i pretraživanjima, omogućavajući korisnicima na siguran lociranje, dijeljenje, objavljivanje i pretplaćivanje na web sadržaje. Trillian Trillian je P2P program za dijeljenje datoteka i razmjenu trenutnih poruka koji koristi XML sučelje [254]. Sukladan je s nekoliko IM protokola, uključujući I Seek You (ICQ), Internet Relay Chat (IRC), Microsoft Network Messenger (MSNM), Yahoo Instant Messenger (YIM) i America Online Instant Messenger (AIM)1. Trillian omogućava korisnicima korištenje višestrukih usluga koje su vezane uz pojedine IM mreže, kao i liste prijatelja, sve u jednom sučelju. Trillian je dostupan kao besplatna programska podrška, ali samo za Windows obitelj operacijskih sustava.

METAPODACI

Bitzi Bitzi je besplatan web meta-katalog koja omogućava korisnicima da opišu, ocijene i verificiraju sve vrste digitalnih sadržaja [255]. Temelji se na, za svaku datoteku jedinstvenom otisku, tzv. bitprint-a (kriptografski sažetak). Bitzi je sveobuhvatan katalog dostupnih datoteka iz raznih decentraliziranih mreža poput Gnutella, FreeNet ili Napster. Korisnicima omogućuje korištenje sustava koji provjerava autentičnost na vrlo niskoj razini i sustava za određivanje da li je preuzeta datoteka kompletna ili oštećena. MusicBrainz MusicBrainz je ukratko opisan u poglavlju Distribuirane tražilice, str. 18. PLATFORMedia PLATFORMedia je ukratko opisan u poglavlju Distribuirane tražilice, str. 18. Radio UserLand Radio UserLand je osobna radio stanica koja putem Interneta djeluje kao organizator i glazbeni svirač (engl. player), te ljudima nudi glazbeni program, ali i mogućnost da oni sami dijele vlastite kreacije s drugima. Funkcionira kao HTTP poslužitelj. Korisnici mogu označiti mapu koju žele podijeliti, a svi popisi pjesama koji se nađu u toj mapi dostupni su preko weba. Tako zajednica korisnika međusobno dijeli pjesme, a Radio UserLand „samo“ distribuira liste pjesama i podatke o korištenju u XML formatu. Radio UserLand se ne može koristiti za distribuciju datoteka2. „Radio UserLand

1 America Online povremeno blokira AIM kompatibilnost prema Trillianu. 2 Na taj način ne mogu se distribuirati nikakve MP3 datoteke, pa ni druge vrste medija.

XXX Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta je jedinstven i snažan alat za publiciranje putem weba te za izradu web bloga sa naprednim mogućnostima poput integriranog agregatora novosti.“ [256] Resource Description Framework Resource Description Framework (RDF), razvio je World Wide Web Consortium. To je „deklarativni jezik i pruža standardni način korištenja XML-a za opis metapodataka u obliku izvještaja o svojstvima i odnosima entiteta na Web-u.“ [257] Rich/RDF Site Summary (RSS) RSS je format za objavu vijesti i sadržaja vijesti [258]. Ovdje je potrebno razlikovati više srodnih formata:

• Rich Site Summary ili RSS 0.91,

• RDF Site Summary ili RSS 1.0,

• RSS 2.0. Izvorni RSS 0.90 izradio je Netscape kao format za izgradnju naslovnica portala većih komitenata. [259] Ta je inačica ispala prekomplicirana, pa je nastala jednostavnija verzija 0.91. Nakon što je Netscape izgubio interes za izradu poslovnih portala, inačica 0.91 došla je u vlasništvo tvrtke UserLand, koji ju je namjeravao koristiti kao osnovu svojih web temeljenih proizvoda. U međuvremenu, treća je nekomercijalna skupina dizajnirala novi oblik RSS-a temeljen na onome što su smatrali originalnim načelima RSS 0.90 (prije nego što je pojednostavljen u 0.91). Taj dakle format, koji se temelji na RDF, nazvali su RSS 1.0. S obzirom da UserLand nije bio uključen u projektiranje ovog novog formata, i da je bio pobornik pojednostavljenog 0.90, nije prihvatio novi standard RSS 1.0, već je nastavio razvijati 0.9x granu kroz verzije 0.92, 0.93, 0.94 i na kraju 2.0.

UPRAVLJANJE UGLEDOM I IMOVINOM

FreeNet FreeNet je ukratko opisan u poglavlju Infrastruktura, str. 24. NextPage NextPage je ukratko opisan u poglavlju Distribuirane tražilice, str. 18. OpenPrivacy OpenPrivacy je distribuirana, kriptografskim algoritmima osigurana platforma otvorenog kôda, koja služi za razmjenu anonimnih demografskih profila. [260] Projekt s jedne strane omogućava korisnicima da dijele svoj profil s drugima, a istovremeno štiti njihovu privatnost. Platforma upravlja takozvanim ugledom (reputacijom) korisnika. Ugled je objekt koji se oslanja na XML digitalni potpis i koji na siguran način pohranjuje

XXXI Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta informacije iz osobnog profila. Poslužitelji ugleda su agenti koji odgovaraju na zahtjeve koje se odnose na ugled. Sustav ima mnoge mogućnosti, a možda je najznačajnija ta da su informacije o korisniku potpuno razdijeljene na one podatke o korisniku i na podatke o korisnikovu identitetu. One iz otvorenog dijela sustava, javno su dostupne za javnu inspekciju i reviziju. Reptile Reptile je ukratko opisan u poglavlju Platforme za dopisivanje, str. 28. Free Haven Project Free Haven Project je ukratko opisan u poglavlju Infrastruktura, str. 24. Yenta Yenta je potpuno distribuiran P2P sustav koji samostalno utvrđuje interese korisnika i potom automatski formira grupe za raspravu korisnika koji imaju jedan ili više zajedničkih interesa. U njima korisnici – sudionici grupe za raspravu mogu slati trenutne poruke, putem sigurnog komunikacijskog kanala, i to jedan-na-jedan ili u skupinama. Sustav je prvobitno razvijen kao dio Leonard Fonerove doktorske disertacije pri MIT Media Lab's Software Agents grupi. [261] Yenta pokazuje kako se kombiniranjem triju elemenata:

• distribuiranog dizajna koji se ne oslanjaju na bilo koje središnje mjesto,

• kriptografije i

• upravljanje ugledom, mogu riješiti mnogi problemi koji se javljaju kod zaštite osjetljivih podataka od krekera, sudskih tužbi i zlonamjernih uljeza. Yenta je programska podrška otvorenog kôda.

SIGURNOST

BadBlue BadBlue je ukratko opisan u poglavlju Dijeljenje datoteka, str. 20. Base One International Base One International je ukratko opisan u poglavlju Razvojne okoline, str. 11. Endeavor Endeavor je ukratko opisan u poglavlju Uređaji kao čvorovi, str. 12. Filetopia Filetopia je ukratko opisana u poglavlju Distribuirane tražilice, str. 18. Groove Networks Groove Networks je ukratko opisan u poglavlju Suradnja, str. 8.

XXXII Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Global Network Computers „Global Network Computers je razvio međunarodni portfelj patentiranih aplikacija koje se temelje na distribuiranim P2P Internet računalnim sustavima poput SETI@Home, Napster i Gnutella, uključivši u njih i komercijalne i sigurnosne aspekte.“ [262] Štoviše, „Global je fokusirana na najveći problem u sustavima istovrsnih entiteta: sigurnost.“ [262] Global je patentirao tehnologiju na čvorovima temeljenih sigurnosnih sustava koji koriste tzv. „hibridni vatrozid“ (engl. hybrid firewall) koji se pokreće na klijentu i može se podesiti za otkrivanje i sprječavanje sigurnosnih upada. OpenPrivacy OpenPrivacy je ukratko opisan u poglavlju Upravljanje ugledom i imovinom, str. 31. Peer-to-Peer Trusted Library Peer-to-Peer Trusted Library je sigurnosna programska podrška za razvoj P2P aplikacija. Intel je objavio biblioteku (engl. Library) pod licencom Berkeley Software Distribution, kao poticaj razvoju aplikacija u P2P području. Peer-to-Peer Trusted Library Application Programming Interface pruža podršku za potpisivanje, šifriranje, autentifikaciju, sigurnu pohranu i enkripciju za programere koji koriste C++ na Windows ili Linux operacijskim sustavima. Publius Publius je sustav web izdavaštva usmjeren na onemogućavanje cenzure umetanjem sloja šifriranja koji štiti anonimnost izdavača [263]. Izdavač šifrira sadržaj nekim ključem, zatim šifrirani sadržaj i ključ dijeli na dijelove te ih postavlja na web poslužitelje1 koji na taj način ne mogu znati o kakvom je sadržaju riječ s obzirom da su to samo datoteke - fragmenti originalnih šifriranih datoteka. Korisnik mora dohvatiti sve dijelove datoteka i ključeva, te uvjeriti se u cjelovitost i nepromijenjenost sadržaja. [264] Tuneprint Tuneprint je ukratko opisan u poglavlju Distribucija licenciranih sadržaja, str. 27.

POSLUŽITELJI I SERVISI KAO P2P ČVOROVI

.NET .NET je ukratko opisan u poglavlju Internetski operacijski sustavi, str. 27.

1 Bilo koje javno dostupne web poslužitelje sa statičkom IP adresom. Publius sustav bilježi jedino njihovu statičku listu.

XXXIII Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

JXTA JXTA je platforma koja je dizajnirana za rješavanje niza problema u modernom distribuiranom računalstvu, a prvenstveno služi za mrežno programiranje, distribuirano računalstvo te u području razvoja mreža istovrsnih računala (P2P mreža). [135] JXTA je postao razvojna platforma otvorenog kôda s četiri glavna koncepta:

• sposobnost da preusmjerava rezultat jednog entiteta u drugi (engl. pipe, piping),

• grupiranje (rad u grupi, međudjelovanje u grupi),

• sposobnost praćenja i mjerenja i

• sigurnosni sloj. Projekt JXTA bavi se i otvorenim, generaliziranim protokolima koji omogućavaju međusobnu komunikaciju svim čvorovima na mreži istovrsnih entiteta, uključujući računala, poslužitelje i ostale priključene uređaje [135][136] (detaljnije u poglavlju 2.4.3.2 Strukturirani (DHT) P2P protokoli na str. 70). Bloglines Bloglines je besplatna on-line usluga koja korisnicima pomaže u upravljanju web informacijama. To se ponajprije odnosi na dostavljanje vijesti (engl. news feeds), web blogove (engl. weblogs) te audio sadržaje (poput podcasta1). [265] Bloglines za korisnika prati informacije za koje je zadužio Bloglines te automatski dohvaća nove sadržaje. Sve te nove sadržaje zatim prikazuje na jednom web sučelju. Cijela je usluga moguća stoga što većina današnjih modernijih web mjesta uz vijesti nudi i RSS način njihove distribucije. Bloglines je web aplikacija koja je u cijelosti realizirana na strani poslužitelja. 2Peer 2Peer je ukratko opisan u poglavlju Internetski operacijski sustavi, str. 27. Google Reader „Google Reader je web agregator, sposoban za čitanje Atom i RSS distribucije novosti. U testnu uporabu je pušten 2005. godine, a u punu uporabu 2007.“ [267] Google Reader stalno provjerava novosti na koje se je korisnik pretplatio (u obliku RSS ili Atom

1 Podcast je rijetki termin iz engleskog jezičnog područja za koji je teško naći/izmisliti odgovarajuću zamjenu u hrvatskom jeziku. Na hrvatskoj Wikipediji o podcastu piše sljedeće: „Podcast je digitalna datoteka koja sadržava audio ili audio-video zapis koji se distribuira putem Interneta koristeći RSS tehnologiju, a namijenjen je gledanju (ili slušanju) na računalu, digitanom prijenosnom playeru poput iPoda ili televizije koristeći uređaje poput Apple TV-a. Naziv podcast je složenica riječi POD (Personal On Demand) i engleske riječi broadcast. Iako su na početku podcasti bili isključivo audio datoteke, najčešće u mp3 formatu, danas se za podcast uglavnom smatraju video sadržaji. Video podcast se još naziva i vidcast, a osobe koje se bave podcastingom se nazivaju podcasteri. RSS agregatori specijalizirani za skidanje Podcasta zovu se Podcatcheri.“ [266]

XXXIV Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta formata), te iste prikazuje u jedinstvenom web sučelju. Članke koje korisnik pročita može vrlo lako i podijeliti s drugim Google korisnicima. [268] Blogs.com Blogs.com je usluga koja u šumi blogova nastoji pronaći najbolje te ih po pojedinim kategorijama prezentirati preko web stranica, a po iskazanoj želji korisnika, isporučiju se i u obliku e-pošte, tj. elektroničkog časopisa. [269] O tome se brine ekipa urednika. SOAP SOAP [270][271] je jednostavan protokol za razmjenu informacija u decentraliziranoj i distribuiranoj računalnoj okolini. Temelji se na XML protokolu, a čine ga tri dijela:

• omotnica koja identificira XML dokument kao SOAP poruku odnosno definira okvir za opisivanje onoga što se u poruci nalazi te kako ga obraditi,

• skup pravila kodiranja za opis primjene definiranih tipova podataka, te

• konvencija za predstavljanje postupaka udaljenih poziva i odgovora. SOAP se može koristiti u kombinaciji s drugim protokolima, ali se najčešće koristi s HTTP protokolom koji je i predviđen za prijenos tekstnih sadržaja. WSDL WSDL (Web Services Description Language) je XML format za opisivanje mrežne usluge kao skup krajnjih točaka koje djeluju putem poruka. Poruke sadrže informacije koje se odnose ili na dokumente ili na procedure. Postupci i poruke se opisuju apstraktno, a potom se vežu na konkretni mrežni protokol te oblikuje tako da se definira odredišna točka. Konkretne, povezane krajnje točke kombiniranjem tvore apstraktne krajnje točke odnosno usluge (servise). WSDL je proširiv u smislu da dozvoljava opis krajnjih točaka i njihovih poruka, bez obzira na to koji se formati poruka i koji se mrežni protokoli koriste pri komunikaciji. Dokument [272] opisuje kako se WSDL format koristi u sprezi s SOAP1.1, HTTP GET/POST i MIME. XML-RPC XML-RPC1 je protokol koji omogućava ostvarivanje udaljenih poziva s jednog računala na drugom, putem Interneta. Koristi XML za enkapsulaciju (udaljenih) poziva, te HTTP kao transportni mehanizam. Slika 53 shematski prikazuje princip rada protokola [273].

1 XML (engl. EXtensible Markup Language) + RPC (engl. Remote Procedure Call) = XML-RPC; protokol koji koristeći XML omogućava ostvarivanje udaljenih poziva.

XXXV Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Slika 53: XML-RPC protokol Izvor: -, XML-RPC Home Page, UserLand Software, Scripting News, 3. srpanj 2003., , (9. veljač a 2009.)

Računala pri takvoj vrsti komunikacije mogu biti sasvim različitih platformi. XML-RPC je osmišljen na takav način da omogućuje što jednostavnije slanje, obradu i povratak složenih struktura podataka. Nastao je 1998. godina, kao prethodnik SOAP protokola. Glueware Glueware je ukratko opisan u poglavlju Infrastruktura, str. 24. XOBJEX XOBJEX je ukratko opisan u poglavlju Distribuirani objekti, str. 17.

SUPERDISTRIBUCIJA (VIŠEKANALNA RAZMJENA SADRŽAJA)

AllCast AllCast je programska platforma za distribuciju sadržaja od jednog čvora prema više njih (engl. peer-to-multipeer) [274]. Koristi patentiranu tehnologiju koja osigurava da nema uskih grla u distribucijskim kanalima, bez obzira na širinu komunikacijskog kanala ili broja korisnika. Ta tzv. „kaskadna“ tehnologija koja se koristi web distribucijom sadržaja (engl. webcasting) pružateljima sadržaja daje mogućnost da se na siguran i jednostavan način omogućuju sudjelovanje maksimalnog broj korisnika (ili slušatelja ili gledatelja), po znatno nižoj cijeni nego kod većine klasičnih širokopojasnih distributera. Miro Težnja je neprofitne organizacije Participatory Culture Foundation pomoću besplatne aplikacije otvorenog kôda Miro [275], pretvaranje računala u Internetski televizijski prijemnik. Pri tome, aplikacija koristi BitTorrent protokol. Miro koristi i RSS tehnologiju da bi korisnike informirao o najnovijim dostupnim video sadržajima.

XXXVI Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Publius Publius je ukratko opisan u poglavlju Sigurnost, str. 32.

STVARANJE WEB SADRŽAJA

Amaya Amaya [276] je WYSIWYG1 HTML editor i preglednik. Otvorenog je kôda. Nastao je pod pokroviteljstvom W3C konzorcija, a razvila ga je INRIA. [277] Glavni cilj toga razvoja je demonstracija novih web tehnologija te pomoć korisnicima u stvaranju valjane web stranice. Naime, s Amayom se može stvarati i upravljati bogatim web stranicama koje mogu uključivati forme, tablice i druge napredne mogućnosti, pa čak i matematičke izraze. Pri tome je moguće korištenje i stilova kroz Cascading Style Sheets2. Blogger Blogger je web aplikacija koja omogućuje da registrirani „... korisnici svoje misli o aktualnim zbivanjima, o vlastitom životu, o bilo čemu...“ [279], na jednostavan način podijele s čitavim svijetom. Da bi „bloganje“ bilo što učinkovitije i jednostavnije, Bloggerov vlasnik Google je razvio mnoštvo značajki. Everything Everything je sustav upravljanja informacijama temeljen na MySQL-u i Perlu. Njime „ulaze, povezuju se i preuzimaju informacije“ koje se mogu koristiti za stvaranje web stranica. Sustav ima i omogućenu komunikaciju između korisnika tipa chat i „izborni sustav koji pomaže uspostavi povjerenja među korisnicima“. [280] Manila Manila je web sustav za upravljanje sadržajem (engl. Content Management System, CMS), koji omogućuje grupama ljudi objavljivanje web sadržaja [281]. Sustav je osobito namijenjen za: 1) izradu web stranica organizacije/poduzeća. 2) za publiciranje novih sadržaja na te stranice i 3) razvijanje weblogova. Svaka se stranica u Manili izravno uređuje u web pregledniku. MovableType MovableType je programska podrška za publiciranje web stranica, temeljena na Perlu i MySQL-u. Težište programa je na olakšavanje rada na povezivanju sadržaja, uređivanju teksta, unosu sadržaja, stvaranju stranica i njihovom održavanju. Tim svojim

1 WYSIWYG = on što vidimo istovjetno je konačnom izgledu, engl. What You See Is What You Get. 2 „Cascading Style Sheets (CSS) jednostavan je mehanizam za dodavanje stilova (npr. vrsta slova, boja, prored) na različite dijelove web dokumenata.“ [278]

XXXVII Magistarski rad: Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta obilježjima, pogodan je za stranice na kojima se često ažuriraju vijesti ili za blogove pisane u stilu časopisa. [282] Program ima sljedeće mogućnosti: zaštita od neželjene pošte, WYSIWYG uređivač, prilagodba stranica putem predložaka, višestruko objavljivanje predloška na više odredišta, podrška za više autora na temelju dodjeljivanja različitih razina prava, grupiranje stavki u kategorije, sustav komentara, podrška višestrukim weblogovima, sposobnost mijenjanja unaprijed ili unazad datuma unosa nekog sadržaja, odobravanje novog sadržaja, objava sadržaja s udaljenih lokacija, RSS podrška, prilagodljive mogućnosti arhiviranja (mjesečno, tjedno, dnevno, prema starosti, prema kategoriji) i sustav obavješćivanja putem elektroničke pošte [283]. MozBlog MozBlog je alat, sučelje za uređivanje bloga (bloging) za Mozilla1 web preglednike. Mozblog koristi Bloggerov Application Programming Interface (API Blogger), omogućujući korisniku da održava svoj blog preko extensible Markup Language Remote Procedure Call (XML-RPC) poziva, jednostavno iz web preglednika (kome se instalacijom ovog dodatka stvara dodatna alatna traka s potrebnim naredbama) [284]. Radio Userland Radio Userland je ukratko opisan u poglavlju Metapodaci, str. 30. Free Haven Project Free Haven Project je ukratko opisan u poglavlju Infrastruktura, str. 24. Wiki Wiki Web, Wikipedia i sl. Wiki2 Wiki Web [286], Wikipedia [287] i slični projekti su skupine web stranica s podacima/informacijama koje svatko može mijenjati, tj. one su otvorene za izmjene za svakoga tko ih želi izmijeniti. Pristup stranicama, otvaranje stranica, njihovo ažuriranje odvija se putem web preglednika. Sustav sam, automatski, stvara poveznice između pojmova. Iako Wiki nije striktno P2P aplikacija, sudionici se potiču na izravnu komunikaciju, bez posredovanja moderatora ili administratora.

1 Pored najpoznatijeg Mozillinog web preglednika, Firefoxa, postoji mnoštvo web preglednika koji se temelje na istoj jezgri otvorenog kôda. 2 Kod ovog pojma [285] treba zapravo razlučiti nekoliko pojmova (prevedeni citat): • „wiki je generički pojam sa više značenja: • programska podrška koja omogućuje da ljudi stvaraju web stranice koje se mogu uređivati • web stranice izrađene sa takvom programskom podrškom • ideja i filozofija koja je u temelju takvih web stranica. • Wiki (ili `Wardov Wiki´) ima jedno pravilno značenje, a to je originalni wiki koji je stvorio Ward Cunningham [288]. • Wikipedia je točno određeni projekt stvaranja na wikiju temeljene enciklopedije koja se nalazi na http://www.wikipedia.org/.“

XXXVIII Bazična dokumentacijska kartica na hrvatskom jeziku

MRIZ (FOI – Sveučilište u Zagrebu) UDK: 004.7:004.94(043.2) Magistarski rad

Simulacijski alati i njihova ograničenja pri analizi i unapređenju rada mreža istovrsnih entiteta

Tedo Vrbanec Fakultet organizacije i informatike Varaždin, Hrvatska

Sustavi istovrsnih entiteta postali su važan dio Interneta. Milijuni ljudi koriste njihove strukture i usluge. Njihovo korištenje ubrzava akademska istraživanja i suradnju istraživača iz mnogih znanstvenih domena. U radu se raspravlja o karakteristikama, strukturama, protokolima, nedostacima, problemima i budućim otvorenim područjima razvoja kako sustava istovrsnih entiteta tako i njihovih simulatora. Naime, za razvoj svakog novog programskog sustava potrebno je testiranje i provjera rada. Provjera rada u stvarnim uvjetima nije uvijek moguća, ali zato se treba obavljati u uvjetima koji su što je moguće više slični stvarnim uvjetima, tj. testna okolina treba što više sličiti produkcijskoj. Implementacija mreža istovrsnih entiteta zahtijeva angažiranje značajnih resursa u obliku velikog broja čvorova i korisnika. Testiranje takvih mreža u stvarnom je životu moguće tek kada se one izgrade. Kako bi se ipak unaprijed testiralo i predvidjelo njezino ponašanje, jedno moguće rješenje mogu biti simulacije.

Voditelji rada: prof. dr. sc. Željko Hutinski prof. dr. sc. Vesna Dušak

Povjerenstvo za ocjenu i obranu: prof. dr. sc. Neven Vrček, predsjednik prof. dr. sc. Željko Hutinski, mentor i član prof. dr. sc. Vesna Dušak, sumentorica i članica

Obrana: 1. lipanj 2010. Promocija:

Rad je pohranjen u biblioteci Fakulteta organizacije i informatike u Varaždinu, Pavlinska 2

(XIV + 181 + XXXVIII stranica, 53 slike, 18 tablica, 3 priloga, 288 bibliografskih podataka, izvornik na hrvatskom jeziku) MRIZ-2 UDK: 004.7:004.94(043.2) 1. Simulacijski alati i njihova ograničenja pri analizi i Distribuirani sustavi unapređenju rada mreža istovrsnih entiteta P2P mreže I. Vrbanec, T. P2P simulatori II. Fakultet organizacije i informatike, Varaždin, Hrvatska Bazična dokumentacijska kartica na engleskom jeziku

MRIZ-2 (FOI-Univ. Zagreb) UDK: 004.7:004.94(043.2) Master of Science Thesis

Simulation tools and their limitations in the analysis and improvement of peer-to-peer networks

Tedo Vrbanec Faculty of Organization and Informatics Varaždin, Hrvatska

This master’s thesis deals with P2P systems and problem-areas of P2P simulators. It explains the causes of the emergence of P2P systems, their historical development, recognizes their generations, types and subtypes as well as their characteristics. The thesis compares the client-server and P2P systems paradigms. For the latter it states the existing and offers its own definitions. It distinguishes the concepts of overlay network and its associated distributed hash tables (which it often uses) from the P2P systems communication subnets. The thesis proposes a taxonomy of P2P networks and shows their business and scientific applications. Furthermore, the thesis gives a criteria analysis of P2P networks, the parameters that describe the work of P2P networks and evaluation of relevant parameters. It also presents the results of the research of P2P protocols, and P2P applications, their status and their relationships as well as provides their overview and comparison. The thesis provides a necessary framework of simulation modeling with emphasis on the specifics of the simulation modeling P2P systems, i.e. why such simulations present a challenge. The thesis categorizes the simulation modeling of P2P networks within the categories known as stochastic, dynamic, discrete and distributed computer modeling system. It also explains the P2P simulators evaluation method and then provides an overview of the researched simulators of P2P systems, the parameters of their description and criteria for their comparison and evaluation. The thesis proposes a P2P simulator model, its functional and dysfunctional requirements; a conceptual model, which consists of the following layers: network, protocol, application and user behavior. They are managed and communicated with via a graphical user interface. The whole model has been formalized by using ERA modeling. Finally, the thesis indicates and presents open issues, areas of future work and gives some recommendations for further research.

Supervisors: prof. dr. sc. Željko Hutinski prof. dr. sc. Vesna Dušak

Examiners: prof. dr. sc. Neven Vrček, president prof. dr. sc. Željko Hutinski, mentor and member prof. dr. sc. Vesna Dušak, co-mentor and member

Oral examination: Promotion:

The thesis deposited at the Library of the Faculty of Organization and Informatics, Varaždin, Croatia ( XIV + 181 + XXXVIII pages, fig 53, 18 tables, 3 appendixes, 288 references, original in Croatian) MRIZ-2 UDK: 004.7:004.94(043.2) 1. Simulation tools and their limitations in the analysis Distributed systems and improvement of peer-to-peer networks Peer-to-peer networks I. Vrbanec, T. Peer-to-peer simulators II. Faculty of organization and informatics, Varaždin, Croatia ŽIVOTOPIS Tedo Vrbanec je rođen 7. travnja 1969. g. u Čakovcu, gdje je završio osnovnu školu te prva dva razreda gimnazije (Srednjoškolski centar Čakovec – smjer suradnik u nastavi). Srednjoškolsko obrazovanje završio je u Varaždinu, u Elektrostrojarskoj školi (tada Metalsko-elektronski centar – smjer elektrotehnika, zanimanje elektroničar za RTV tehniku). Radio je izvan struke u nekoliko poduzeća, a u struci početno u poduzećima Inter- Games d.o.o. i Super-Games d.o.o., kao elektroničar, kasnije i menadžer. Radio je i samostalno, pružajući intelektualne usluge, pretežito u području obrazovanja. Nestabilnost tržišta rada, želja za povratak u računalnu struku te neugašena želja za nastavkom školovanja, rezultirala su 1996. g. upisom dodiplomskog studija smjera Informacijski sustavi pri Fakultetu organizacije i informatike u Varaždinu. Tijekom redovitog studija je i radio te samostalno prehranjivao tada četveročlanu obitelj. Bio je demonstrator iz više kolegija. Dobio je nagrade Fakulteta i Rotary Cluba za postignuti uspjeh tijekom studija. Diplomirao je 2001. g. temom Primjena norme ISO 17799 u izgradnji sigurnosti informacijskih sustava. Još kao apsolvent zaposlio se u privredi, u poduzeću Prim-Art d.o.o., gdje je radio kao projektant informacijskog sustava. Poslijediplomski studij informacijskih znanosti, smjer Informacijski sustavi upisao je. 2001. g. kada je postao i vanjski suradnik, a 2002. g. zaposlenik tadašnje Visoke učiteljske škole u Čakovcu, na poslovima stručnog suradnika za informatički sustav (sistem-inženjer) i predavača. Kao sistem-inženjer isplanirao je i do pune realizacije proveo projekt uspostave do tada nepostojećeg informacijsko-komunikacijskog sustava Ustanove. Od 2004. g. prelazi u zvanje predavača, a od 2008. u zvanje višeg predavača. 2009. godine primio je Dekanovu nagradu Učiteljskog fakulteta Zagreb. Održavao je nastavu iz velikog broja informatičkih kolegija, a autor je ili koautor jedanaest objavljenih znanstvenih i stručnih radova, dva stručna predavanja, tri stručna rada su u postupku objavljivanja, jedan je od urednika i koautora Nastavnog plana i programa za visokoškolski stručni studij učitelja s pojačanim studijem izbornog predmeta informatika pri bivšoj Visokoj učiteljskoj školi u Čakovcu. Član je udruge Međimurski informatički klub čija je zadaća promicanje informatičke pismenosti u Međimurskoj županiji. Promiče uporabu programskih i operacijskih sustava otvorenog kôda. Ima osnovne i napredne ECDL certifikate. Oženjen je i otac četvero djece.