Pāriet uz saturu

Vienādranga tīkls

Vikipēdijas lapa
Vienādranga tīkls, kurā saistītie mezgli savstarpēji dalās ar resursiem, neizmantojot centralizētu sistēmu
Klienta-servera tīkla arhitektūra, kurā klients izmanto servisus un resursus no centralizēta servera

Vienādranga tīkls (angļu: Peer-to-peer network "P2P") ir datortīkla arhitektūras veids, kurā visiem tīkla dalībniekiem ir vienādas tiesības. Katrs dalībnieks (dators) var darboties gan kā klients, gan kā serveris vai arī veikt abas šīs funkcijas vienlaikus. Datori šāda veida tīklā spēj sazināties savā starpā tieši, neizmantojot centrālo serveri, kamdēļ šādu arhitektūru mēdz pretstatīt klienta-servera tīkla arhitektūrai.

Katrs šāda datortīkla tips pieprasa, lai visi datori izmantotu vienādu vai saderīgu programmu, kas savā starpā varētu izveidot savienojumu, kā arī nodrošinātu failapmaiņu un citu resursu izmantošanu savā starpā.

Vienādranga tīklu vēsture

[labot šo sadaļu | labot pirmkodu]

Par vienranga tīklu arhitektūras vienu no priekštečim uzskata 1979. gadā izstrādāto USENET tīklu (ziņojumdēļa sistēmu, ar kuras palīdzību dažādas intereškopas apmainās ar informāciju). Sistēma ieviesa decentralizētu kontroles modeli. Ziņu serveri savstarpēji izplatīja Usenet ziņas.

Pirmsākumi vienranga tīkliem ir 1986. gads, kad IBM izstrādāja tīkla arhitektūru dinamiskai maršrutēšanai, izmantojot datortīklus ar patvaļīgu topoloģiju APPN (Advanced Peer-to-Peer Networking).

Pirmā pasaulē popularitāti guvusī (vairāk kā 50 miljoni lietotāju) vienādranga lietotne bija failu koplietošanas sistēma Napster, kas izdota 1999. gadā.[1] Napster radīja 19 gadu vecais ASV students Šons Fenings. Lietotnē bija iespējams bez maksas apmainīties ar mūzikas ierakstiem. Lietotne darbojās izmantojot centralizētu indeksa serveri, kura lietotāji varēja meklēt pēc dziesmas nosaukuma vai izpildītāja vārda. Ja indekss atrada dziesmu uz jebkura tīklā esoša datora, lietotājs varēja to lejuplādēt, vienlaikus daloties ar dziesmām savā tīklā. Taču lielās ierakstu kompānijas - "AOL Time Warner", EMI, "Sony", "Universal", "Bertelsmann" iebilda, ka Napster krāpjot tās un atņemot māksliniekiem honorārus. 1999. gadā tās iesūdzēja Napster tiesā, prasot atlīdzināt zaudējumus. 2001. gadā "Napster" slēdza failu apmaiņas dienestu.[2][3]

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).[4][5][6]

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.[7](Gnutella, Gossip, un Kazaa ir nestrukturētu P2P protokolu piemēri).[8]

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.[9] 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[10][11]

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.[12]

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[13] 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),[14][15] kurā tiek izmantots nepārtrauktas jaukšanas variants, lai katram failam piešķirtu īpašumtiesības uz konkrētu līdzinieku[16][17] 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.[18][19]

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ā).[11][20] 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.[21]

Ievērojami izplatītie tīkli, kas izmanto DHTs, ir Tixati Tixati, kas ir alternatīva BitTorrent, KAD tīklam, Storm botnet,YaCy un Coral Content Distribution Network Arhivēts 2019. gada 7. augustā, Wayback Machine vietnē.. 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.[22] DHT tīkli ir arī plaši izmantoti, lai panāktu efektīvu resursu atklāšanu[23][24] 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 ir vienādranga un klienta-servera modeļu kombinācija.[25] 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.[26]

Vienādranga tīklu darbība

[labot šo sadaļu | labot pirmkodu]

Vienādranga tīklu uzdevumi

[labot šo sadaļu | labot pirmkodu]
  • Jānodrošina satura meklēšanas iespējas (pēc vārda vai šablona);
  • Jābūt kartei, kurā norādīts, kur šis resurss atrodas;
  • Jābūt iespējai lejuplādēt saturu.[27]

Vienādranga tīklu tipi

[labot šo sadaļu | labot pirmkodu]
  • Tīrais vienādranga tīkls:
    • Mezgls (dators) darbojas gan kā klients, gan kā serveris
    • Nav centrālā servera
    • Nav maršrutētāja
  • Hibrīda vienādranga tīkls:
    • Ir centrālais serveris, kas glabā informaciju par katru mezglu un atbild uz pieprasījumiem par šo informāciju.
  • Jauktais vienādranga tīkls:
    • satur gan tīrā, gan hibrīda vienādranga tīkla iezīmes.

Svarīgākā vienādranga tīkla priekšrocība ir, ka visi klienti piedāvā resursus, ieskaitot datu pārraidi, vietu glabāšanai un datu apstrādi. Tie, kā posmi pievienojas un sistēmas prasības palielinās, kopējā sistēmas kapacitāte arī palielinās. Taču klients-serveris tīklu arhitektūrai tā nav. Šādām tīkla arhitektūrām fiksētais serveru skaits neļauj pievienot vairāk klientu, jo tas varētu nozīmēt lēnāku datu pārraides ātrumu visiem lietotājiem.

Tāpat vienādranga tīklus uzskata par lētāku risinājumu salīdzinājumā ar klients-serveris tīklu arhitektūru, jo tas var izmantot par serveriem darba stacijas (nav jāpērk speciāls serveris), ir vieglāk uzstādīt, nav nepieciešams administrators.[28]

Pastāv resursu devēju aizvietojamība. Viena mezgla kļūda vai atteikums neietekmē daļas vai visa tīkla darbību (kā tas būtu raksturīgi klienta-servera tīkla arhitektūrai).[28]

Pamatā trūkumi izriet no centralizācijas neesamības. Šādās sistēmās ir grūtāk nodrošināt drošību (piekļuves tiesību ierobežošanu) un kontroli. Klients-serveris tipa sistēmā pietiek ierīkot drošibas sistēmu (piem. FTP pieteikšanās) serverī vai ierobežotā skaitā serveru. Ar vienādranga tīkliem, kur katra sistēma ir serveris, tas ir ļoti sarežģīti. Parastajiem vienādranga tīklu lietojumiem tas gan nav svarīgi.

Tāpat katra lietotāja resursa darbība var tikt ietekmēta, pastāvot lielam tā resursu vienlaicīgam lietotāju skaitam.

Nepastāv centralizētas datu dublēšanas iespējas.[29]

Vienādranga tīklu protokoli un programmatūra

[labot šo sadaļu | labot pirmkodu]

Šobrīd viens no populārākajiem vienādranga tīklu protokoliem pasaulē. 2001. gadā to izstrādāja Brems Koens. Pastāv daudz aplikāciju, kas šo protokolu izmanto. Katrs satura sniedzējs izveido satura aprakstu, ko sauc par torentu. To lieto, lai pārbaudītu datu integritāti. Līdzinieks (angļu: peer) to var atrast tīmekļā vietnēs. Torents satur informāciju par serveri-trekeru (angļu: tracker) un faila gabaliem (parasti 64 -512 KB). Serveris -trekers uzskaita visus līdziniekus, kas lejup/augšuplādē saturu jeb baru (angļu: swarm). Attiecīgi veicot lejupielādi lietotājs sazinās ar trekeru. Arī bara locekļi regulāri sazinās ar trekeru. Līdzinieki, kam ir faila gabali ir devēji (angļu: seeders). Tālāk līdzinieki viens ar otru tieši apmainās ar failu gabaliem. Īpaši tiek meklēti retāk pieejamie. Esot barā līdzinieki vienlaikus var lejuplādēt trūkstošos failu gabalus un dalīties ar esošajiem. Kad faila gabals lejuplādēts, tiek pārbaudīta torrent failā norādītā kontrolsumma. Atbilstības gadījumā tiek informēti klienti par attiecīgā fragmenta pieejamību.[30]

  1. Andrew S. Tanenbaum, David J. Wetherall. Computer Networks (5th izd.). Pearson, 2010. 748. lpp. ISBN 978-0-13-212695-3.
  2. «P2P». Encyclopædia Britannica. 2019-04-11. Skatīts: 2019-05-14.
  3. «Programmatūru kompānija "Roxio" iegādājas "Napster" nosaukumu un patentus». TVNET. 2002-11-28. Skatīts: 2019-05-13.
  4. Ahson, Syed A.; Ilyas, Mohammad, eds. (2008). SIP Handbook: Services, Technologies, and Security of Session Initiation Protocol. Taylor & Francis. p. 204. ISBN 9781420066043.
  5. Zhu, Ce; et al., eds. (2010). Streaming Media Architectures: Techniques and Applications: Recent Advances. IGI Global. p. 265. ISBN 9781616928339.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 11,0 11,1 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.
  12. 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.
  13. Typically approximating O(log N), where N is the number of nodes in the P2P system
  14. 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.
  15. 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.
  16. Kelaskar, M.; Matossian, V.; Mehra, P.; Paul, D.; Parashar, M. (2002). "A Study of Discovery Mechanisms for Peer-to-Peer Application"Veidne:Inconsistent citations
  17. 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.
  18. Moni Naor and Udi Wieder. Novel Architectures for P2P Applications: the Continuous-Discrete Approach. Proc. SPAA, 2003.
  19. Gurmeet Singh Manku. Dipsea: A Modular Distributed Hash Table Archived 2004-09-10 at the Wayback Machine. Ph. D. Thesis (Stanford University), August 2004.
  20. 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.
  21. 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).
  22. Korzun, Dmitry; Gurtov, Andrei (November 2012). Structured P2P Systems: Fundamentals of Hierarchical Organization, Routing, Scaling, and Security. Springer. ISBN 978-1-4614-5482-3.
  23. 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
  24. 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.
  25. Darlagiannis, Vasilios (2005). "Hybrid Peer-to-Peer Systems". In Steinmetz, Ralf; Wehrle, Klaus (eds.). Peer-to-Peer Systems and Applications. Springer. ISBN 9783540291923.
  26. Yang, Beverly; Garcia-Molina, Hector (2001). "Comparing Hybrid Peer-to-Peer Systems" (PDF). Very Large Data Bases. Retrieved 8 October 2013.
  27. «Datortīkli II: lekcijas: 2. daļa». odo.lv. Skatīts: 2019-05-18.[novecojusi saite]
  28. 28,0 28,1 «Teach ICT - GCSE ICT - network topologies, network hardware, hubs, switches, routers, repeaters, bridges, modems, WAP, network cards». www.teach-ict.com. Arhivēts no oriģināla, laiks: 2019-09-13. Skatīts: 2019-05-18.
  29. «Teach ICT - GCSE ICT - network topologies, network hardware, hubs, switches, routers, repeaters, bridges, modems, WAP, network cards». www.teach-ict.com. Arhivēts no oriģināla, laiks: 2019-09-13. Skatīts: 2019-05-19.
  30. Andrew S. Tanenbaum, David J. Wetherall. Computer Networks (5th izd.). Pearson, 2010. 750-752. lpp. ISBN 978-0-13-212695-3.

Ārējās saites

[labot šo sadaļu | labot pirmkodu]