Dalībnieks:Kristaps1987/Smilšu kaste

Vikipēdijas lapa
Jump to navigation Jump to search


Vēsture[labot šo sadaļu | labot pirmkodu]

Lai gan P2P sistēmas iepriekš tika izmantotas daudzās lietojumprogrammu jomās, [1][3] koncepcija tika popularizēta, izmantojot failu apmaiņas sistēmas, piemēram, mūzikas koplietošanas lietojumprogrammu Napster (sākotnēji izlaists 1999. gadā). Vienādranga kustība ļāva miljoniem interneta lietotāju pieslēgties "tieši, veidojot grupas un sadarbojoties, lai kļūtu par lietotāju izveidotām meklētājprogrammām, virtuālajiem superdatoriem un failu sistēmām."[2] Vienādranga tīkla sākotnēja pamatkoncepcija bija paredzēta iepriekšējās programmatūras sistēmās un diskusijās par tīklu veidošanu, atgriežoties pie principiem, kas norādīti pirmajā piezīmē par pieprasījumu, RFC 1. [3][5]

Tima Bernersa-Lī redzējums par globālo tīmekli bija tuvs P2P tīklam, jo tas paredzēja, ka katrs tīmekļa lietotājs būs aktīvs redaktors un līdzstrādnieks, veidojot un saistot saturu, veidojot savstarpēji saistītu saišu “tīmekli”. Agrais internets bija atklātāks par tagadējo dienu internetu, kur divi internetam pieslēgti datori varēja nosūtīt paciņas viens otram bez ugunsmūriem un citiem drošības pasākumiem.[2][4] Tas kontrastē ar pārraidei līdzīgu tīmekļa struktūru, kāda tā ir izveidojusies gadu gaitā[4] [5] [6] [7] Kā interneta priekštecis ARPANET bija veiksmīgs klientu-serveru tīkls, kurā “katrs iesaistītais mezgls varēja pieprasīt un apkalpot saturu”. Tomēr ARPANET nebija pašorganizēts, un tam trūka spējas “nodrošināt jebkādus līdzekļus kontekstuālai vai saturiskai maršrutēšanai ārpus “vienkāršas” uz adresi balstītas maršrutēšanai”.[5] [7]

Tāpēc tika izveidota USENET, dalīta ziņojumapmaiņas sistēma, kas bieži tiek raksturota kā agrīna vienādranga arhitektūra. Tā tika izstrādāta 1979. gadā kā sistēma, kas īsteno decentralizētu kontroles modeli. Pamata modelis ir klienta-servera modelis no lietotāja vai klienta viedokļa, kas piedāvā pašorganizējošu pieeju intereškopu serveriem. Tomēr ziņu serveri sazinās cits ar citu, lai izplatītu Usenet ziņu rakstus par visu tīkla serveru grupu. Šis pats apsvērums attiecas uz SMTP e-pastu tādā nozīmē, ka pasta pārsūtīšanas aģentu pamata e-pasta apstrādes tīklam ir vienādranga raksturs, savukārt e-pasta klientu perifērija un to tiešie savienojumi ir tikai klienta-servera attiecības.

1999. gada maijā miljoniem cilvēku internetā “Shawn Fanning” iepazīstināja ar mūzikas un failu koplietošanas lietojumprogrammu “Napster”[5] [7]. “Napster” bija sākums vienādranga tīkliem, kā mēs tos pazīstam šodien, kur “iesaistītie lietotāji izveido virtuālu tīklu, pilnīgi neatkarīgu no fiziskā tīkla, neievērojot nekādas administratīvas iestādes vai ierobežojumus”. [5][7]

Arhitektūra[labot šo sadaļu | labot pirmkodu]

Vienādranga tīkls ir veidots ap vienādības mezglu jēdzienu, kas vienlaikus darbojas gan kā “klienti”, gan kā “serveri” ar citiem tīkla mezgliem. Šis tīkla izkārtojuma modelis atšķiras no klienta-servera modeļa, kurā parasti notiek saziņa ar centrālo serveri un no tā. Tipisks faila pārsūtīšanas piemērs, kas izmanto klienta-servera modeli, ir File Transfer Protocol (FTP) pakalpojums, kurā klients un servera programmas ir atšķirīgas: klienti uzsāk pārsūtīšanu, un serveri apmierina šos pieprasījumus.

Maršrutēšana un resursu noteikšana[labot šo sadaļu | labot pirmkodu]

Vienādranga tīkli parasti ievieš daļu virtuālā pārklājuma tīkla virs fiziskā tīkla topoloģijas, kur mezgli pārklājumā veido mezglu apakškopu fiziskajā tīklā. Dati joprojām tiek apmainīti tieši pār pamatā esošo TCP/IP tīklu, bet lietojumprogrammu līmenī līdzinieki var sazināties viens ar otru tieši, izmantojot loģiskās pārklājuma saites (katra no tām atbilst ceļam caur pamatā esošo fizisko tīklu). Pārklājumi tiek izmantoti indeksēšanai un vienādranga noteikšanai un padara P2P sistēmu neatkarīgu no fiziskā tīkla topoloģijas. Pamatojoties uz to, kā mezgli ir savstarpēji saistīti pārklājuma tīklā un kā resursi tiek indeksēti un izvietoti, mēs varam klasificēt tīklus kā nestrukturētus vai strukturētus (vai kā hibrīdus starp tiem)[6][7][8].

Nestrukturēti tīkli[labot šo sadaļu | labot pirmkodu]

Nestrukturēti vienādranga tīkli neuzliek īpašu struktūru pārklājuma tīklam, bet veido mezglus, kas nejauši veido savienojumus cits ar citu.[9](Gnutella, Gossip, un Kazaa ir nestrukturētu P2P protokolu piemēri)[10].

Tā kā tiem nav globāli uzspiestas struktūras, nestrukturēti tīkli ir viegli veidojami un ļauj lokalizēt optimizāciju dažādos pārklājuma reģionos[11]. Tāpat arī tāpēc, ka visu līdzinieku loma tīklā ir vienāda, nestrukturēti tīkli ir ļoti spēcīgi, saskaroties ar augsto “Churn” līmeni, t.i., kad liels skaits lietotāju bieži pievienojas tīklam un pamet to[12][13].

Tomēr nestrukturētu tīklu galvenie ierobežojumi ir saistīti arī ar šo struktūras trūkumu. Jo īpaši, ja vienranga lietotājs vēlas atrast vajadzīgo datu daļu tīklā, ir jāuzsāk tā meklēšana tīklā, lai atrastu pēc iespējas vairāk līdzinieku, kas koplieto datus. Informācijas pieprasījums izraisa ļoti lielu signālu trafiku tīklā, izmanto vairāk centrālā procesora/atmiņas (pieprasot katram vienranga dalībniekam apstrādāt visus meklēšanas vaicājumus) un nenodrošina, ka meklēšanas vaicājumi vienmēr tiks atrisināti. Turklāt, tā kā nepastāv korelācija starp vienranga un tā pārvaldīto saturu, nav garantijas, ka pieprasījums atradīs lietotāju, kam ir vajadzīgie dati. Populārs saturs, visticamāk, būs pieejams vairākos lietotājos, un jebkurš vienranga meklētājs, visticamāk, atradīs to pašu. Bet, ja vienranga lietotājs meklē retus datus, ar kuriem dalās tikai daži citi lietotāji, tad ir maz ticams, ka meklēšana būs veiksmīga [14].

Strukturēti tīkli[labot šo sadaļu | labot pirmkodu]

Strukturētajos vienādranga tīklos pārklājums ir sakārtots noteiktā topoloģijā, un protokols nodrošina, ka jebkurš mezgls var efektīvi[15] meklēt tīklā failu/resursu pat tad, ja resurss ir ārkārtīgi rets.

Visizplatītākais strukturēto P2P tīklu veids ievieš dalītu jaucējtabulu (DHT),[16][17], kurā tiek izmantots nepārtrauktas jaukšanas variants, lai katram failam piešķirtu īpašumtiesības uz konkrētu līdzinieku[18][19] Tas ļauj līdziniekiem meklēt resursus tīklā, izmantojot jaucējtabulu : tas ir, (atslēgas, vērtības) pāri tiek glabāti DHT, un jebkurš iesaistītais mezgls var efektīvi izgūt vērtību, kas saistīta ar norādīto atslēgu[20][21].

Tomēr, lai efektīvi maršrutētu satiksmi caur tīklu, strukturētā pārklājuma mezgliem ir jāuztur to kaimiņu saraksti, kuri atbilst konkrētiem kritērijiem. Tas padara tos mazāk noturīgus tīklos ar augstu Churn līmeni (t.i., ar lielu mezglu skaitu, kas bieži pievienojas tīklam un izstājas no tā)[22][23]. Jaunākajā P2P resursu noteikšanas risinājumu novērtējumā, izmantojot reālas darba slodzes, ir uzsvērti vairāki jautājumi, piemēram, augstas reklāmas izmaksas/resursu atrašana un statiska un dinamiska slodzes nelīdzsvarotība[24].

Ievērojami izplatītie tīkli, kas izmanto DHTs, ir TixatiTixati, kas ir alternatīva BitTorrent, KAD tīklam, Storm botnet,YaCy un Coral Content Distribution Network. Daži ievērojami pētniecības projekti ietver Chord projektu, Kademlia, Past storage utility, P-Grid, pašorganizētu un topošu pārklājuma tīklu un CoopNet satura izplatīšanas sistēmu [25]. DHT tīkli ir arī plaši izmantoti, lai panāktu efektīvu resursu atklāšanu[26][27] attiecībā uz režģveida skaitļošanas sistēmām, jo tie palīdz resursu pārvaldībā un lietojumprogrammu plānošanā.

Hibrīdmodeļi[labot šo sadaļu | labot pirmkodu]

Hibrīdmodeļi ir vienādranga un klienta-servera modeļu kombinācija.[28] Parastais hibrīdmodelis ir centrālais serveris, kas palīdz lietotājiem atrast viens otru. "Spotify" bija hibrīda modeļa piemērs [līdz 2014. gadam]. Ir dažādi hibrīdmodeļi, kas visi veido kompromisu starp centralizētu funkcionalitāti, ko nodrošina strukturēts servera/klienta tīkls, un mezgla vienlīdzību, ko nodrošina tīri vienādranga nestrukturēti tīkli. Pašlaik hibrīdmodeļiem ir labāka veiktspēja nekā tīriem nestrukturētiem tīkliem vai tīri strukturētiem tīkliem, jo noteiktām funkcijām, piemēram, meklēšanai, ir nepieciešama centralizēta funkcionalitāte, bet tie gūst labumu no decentralizētu mezglu apkopošanas, ko nodrošina nestrukturēti tīkli [29].


Atsauces

  1. Barkai, David (2001). Peer-to-peer computing : technologies for sharing and collaborating on the net. Hillsboro, OR: Intel Press. ISBN 978-0970284679. OCLC 49354877.
  2. 2,0 2,1 Oram, Andrew, ed. (2001). Peer-to-peer: harnessing the benefits of a disruptive technologies. Sebastopol, California: O'Reilly. ISBN 9780596001100. OCLC 123103147.
  3. RFC 1, Host Software, S. Crocker, IETF Working Group (April 7, 1969)
  4. Berners-Lee, Tim (August 1996). "The World Wide Web: Past, Present and Future". Retrieved 5 November 2011.
  5. 5,0 5,1 5,2 5,3 Steinmetz, Ralf; Wehrle, Klaus (2005). "2. What Is This "Peer-to-Peer" About?". Peer-to-Peer Systems and Applications. Lecture Notes in Computer Science. Springer, Berlin, Heidelberg. pp. 9–16. doi:10.1007/11530657_2. ISBN 9783540291923.
  6. Ahson, Syed A.; Ilyas, Mohammad, eds. (2008). SIP Handbook: Services, Technologies, and Security of Session Initiation Protocol. Taylor & Francis. p. 204. ISBN 9781420066043.
  7. Zhu, Ce; et al., eds. (2010). Streaming Media Architectures: Techniques and Applications: Recent Advances. IGI Global. p. 265. ISBN 9781616928339.
  8. Kamel, Mina; et al. (2007). "Optimal Topology Design for Overlay Networks". In Akyildiz, Ian F. (ed.). Networking 2007: Ad Hoc and Sensor Networks, Wireless Networks, Next Generation Internet: 6th International IFIP-TC6 Networking Conference, Atlanta, GA, USA, May 14-18, 2007 Proceedings. Springer. p. 714. ISBN 9783540726050.
  9. Filali, Imen; et al. (2011). "A Survey of Structured P2P Systems for RDF Data Storage and Retrieval". In Hameurlain, Abdelkader; et al. (eds.). Transactions on Large-Scale Data- and Knowledge-Centered Systems III: Special Issue on Data and Knowledge Management in Grid and PSP Systems. Springer. p. 21. ISBN 9783642230738.
  10. Zulhasnine, Mohammed; et al. (2013). "P2P Streaming Over Cellular Networks: Issues, Challenges, and Opportunities". In Pathan; et al. (eds.). Building Next-Generation Converged Networks: Theory and Practice. CRC Press. p. 99. ISBN 9781466507616.
  11. Chervenak, Ann; Bharathi, Shishir (2008). "Peer-to-peer Approaches to Grid Resource Discovery". In Danelutto, Marco; et al. (eds.). Making Grids Work: Proceedings of the CoreGRID Workshop on Programming Models Grid and P2P System Architecture Grid Systems, Tools and Environments 12-13 June 2007, Heraklion, Crete, Greece. Springer. p. 67. ISBN 9780387784489.
  12. Jin, Xing; Chan, S.-H. Gary (2010). "Unstructured Peer-to-Peer Network Architectures". In Shen; et al. (eds.). Handbook of Peer-to-Peer Networking. Springer. p. 119. ISBN 978-0-387-09750-3.
  13. Lv, Qin; et al. (2002). "Can Heterogeneity Make Gnutella Stable?". In Druschel, Peter; et al. (eds.). Peer-to-Peer Systems: First International Workshop, IPTPS 2002, Cambridge, MA, USA, March 7-8, 2002, Revised Papers. Springer. p. 94. ISBN 9783540441793.
  14. Shen, Xuemin; Yu, Heather; Buford, John; Akon, Mursalin (2009). Handbook of Peer-to-Peer Networking (1st ed.). New York: Springer. p. 118. ISBN 978-0-387-09750-3.
  15. Typically approximating O(log N), where N is the number of nodes in the P2P system[
  16. Other design choices include overlay rings and d-Torus. See for example Bandara, H. M. N. D.; Jayasumana, A. P. (2012). "Collaborative Applications over Peer-to-Peer Systems – Challenges and Solutions". Peer-to-Peer Networking and Applications. 6 (3): 257. arXiv:1207.0790. doi:10.1007/s12083-012-0157-3.
  17. R. Ranjan, A. Harwood, and R. Buyya, "Peer-to-peer based resource discovery in global grids: a tutorial," IEEE Commun. Surv., vol. 10, no. 2. and P. Trunfio, "Peer-to-Peer resource discovery in Grids: Models and systems," Future Generation Computer Systems archive, vol. 23, no. 7, Aug. 2007.
  18. Kelaskar, M.; Matossian, V.; Mehra, P.; Paul, D.; Parashar, M. (2002). "A Study of Discovery Mechanisms for Peer-to-Peer Application"Veidne:Inconsistent citations
  19. Dabek, Frank; Zhao, Ben; Druschel, Peter; Kubiatowicz, John; Stoica, Ion (2003). Towards a Common API for Structured Peer-to-Peer Overlays. Peer-to-Peer Systems II. Lecture Notes in Computer Science. 2735. pp. 33–44. CiteSeerX 10.1.1.12.5548. doi:10.1007/978-3-540-45172-3_3. ISBN 978-3-540-40724-9.
  20. Moni Naor and Udi Wieder. Novel Architectures for P2P Applications: the Continuous-Discrete Approach. Proc. SPAA, 2003.
  21. Gurmeet Singh Manku. Dipsea: A Modular Distributed Hash Table Archived 2004-09-10 at the Wayback Machine. Ph. D. Thesis (Stanford University), August 2004.
  22. Lv, Qin; et al. (2002). "Can Heterogeneity Make Gnutella Stable?". In Druschel, Peter; et al. (eds.). Peer-to-Peer Systems: First International Workshop, IPTPS 2002, Cambridge, MA, USA, March 7-8, 2002, Revised Papers. Springer. p. 94. ISBN 9783540441793.
  23. Li, Deng; et al. (2009). Vasilakos, A.V.; et al. (eds.). An Efficient, Scalable, and Robust P2P Overlay for Autonomic Communication. Springer. p. 329. ISBN 978-0-387-09752-7.
  24. Bandara, H. M. N. Dilum; Jayasumana, Anura P. (January 2012). "Evaluation of P2P Resource Discovery Architectures Using Real-Life Multi-Attribute Resource and Query Characteristics". IEEE Consumer Communications and Networking Conf. (CCNC '12).
  25. Korzun, Dmitry; Gurtov, Andrei (November 2012). Structured P2P Systems: Fundamentals of Hierarchical Organization, Routing, Scaling, and Security. Springer. ISBN 978-1-4614-5482-3.
  26. Ranjan, Rajiv; Harwood, Aaron; Buyya, Rajkumar (1 December 2006). "A Study on Peer-to-Peer Based Discovery of Grid Resource Information" (PDF)Veidne:Inconsistent citations
  27. Ranjan, Rajiv; Chan, Lipo; Harwood, Aaron; Karunasekera, Shanika; Buyya, Rajkumar. "Decentralised Resource Discovery Service for Large Scale Federated Grids" (PDF). Archived from the original (PDF) on 2008-09-10.
  28. Darlagiannis, Vasilios (2005). "Hybrid Peer-to-Peer Systems". In Steinmetz, Ralf; Wehrle, Klaus (eds.). Peer-to-Peer Systems and Applications. Springer. ISBN 9783540291923.
  29. Yang, Beverly; Garcia-Molina, Hector (2001). "Comparing Hybrid Peer-to-Peer Systems" (PDF). Very Large Data Bases. Retrieved 8 October 2013.