P2P

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Peršokti į: navigaciją, paiešką

P2P (angl. Peer-to-peer) yra tinklo modelis, kuriame keitimasis resursais vyksta tiesiogiai tarp vartotojų. Tai yra priešingybė kliento-serverio modeliui. Gryname P2P tinkle nėra kliento ir serverio sąvokų – susijungę vartotojai yra lygiaverčiai, t. y. kiekvienas veikia ir kaip klientas, ir kaip serveris.

Enciklopedinis kompiuterijos žodynas siūlo lietuvišką „peer-to-peer“ atitikmenį lygiarangiai. Jame lygiarangių architektūra apibrėžiama kaip „tinklo architektūra, sudaryta iš dviejų arba daugiau kompiuterių, kurie keičiasi duomenimis naudodami tą pačią arba to paties tipo programinę įrangą“. [1]

Vienas iš P2P modelio taikymo pavyzdžių yra IRC DCC pokalbis ar failo siuntimas. Centriniai serveriai šiuo atveju reikalingi tik tam, kad padėtų surasti kitą pusę, o paskui bendravimas jau vyksta tiesiogiai. Gnutella ir kitos panašios sistemos sugeba atlikti paiešką ir nenaudodamos centrinio serverio. Tokių sistemų neįmanoma išjungti iš vieno centro: kartą paleistos, jos veikia tol, kol yra pakankamai norinčių jomis naudotis klientų.

Pagrindiniai principai[taisyti | redaguoti kodą]

P2P tinkle resursų (atminties, tinklo, procesoriaus) naudojimas yra tolygiai paskirstytas tarp visų tinklo narių, kurie gali naudoti ir vienas kito resursus. Šių resursų naudojimą P2P tinkle kiekvienas narys kontroliuoja autonomiškai. Tinklo nariai sujungti internetu, kuriame nario IP adresas laikui bėgant gali keistis. Nuolat vyksta narių kaita: vieni pasitraukia, ateina kiti. Nariai susisiekia vienas su kitu tiesiogiai, be centralizuotos kontrolės ar koordinacijos. Centralizuoti serveriai kai kada naudojami tik darbo optimizavimui (hibridinės sistemos). Nariai nebeskirstomi į klientus ir serverius savokų, nes bet kuris narys atlieka abu vaidmenis. Visa sistema kuriama taip, kad veiktų savaime. [1].

Pranašumai:

  • Centriniam serveriui išėjus iš rikiuotės, susijungę vartotojai ir toliau gali bendrauti
  • Pasiekiami didesni greičiai, nes išvengiama tarpinės grandies – serverio
  • Serveris nežino, kokia informacija keičiasi vartotojai
  • Serveris papildomai neapkraunamas

P2P keitimosi failais tinklai[taisyti | redaguoti kodą]

Tinklas Klientai
Ares Ares Galaxy, Warez P2P, Filecroc
BitTorrent Azureus, BitComet, BitTorrent, BitTornado, KTorrent, Morpheus, Opera, µTorrent
Direct Connect DC++, NeoModus Direct Connect, BCDC++, ApexDC++, StrongDC++
Gnutella LimeWire, Morpheus
Freenet
eD2K eDonkey, eMule, xMule, aMule
iMesh iMesh, Morpheus
Kademlia eMule
Napster
Kazaa Kazaa, Morpheus
Soulseek Soulseek
Grokster Morpheus

Daugiatinklė P2P programinė įranga[taisyti | redaguoti kodą]

Programinė įranga/klientas Tinklai arba protokolai OS Licencija
aMule eD2K, Kad Daugiaplatformė GPL
eMule eD2K, Kad Windows GPL
FileScope eD2K, Gnutella, Gnutella2, OpenNAP Daugiaplatformė GPL
giFT eD2K, FastTrack, Gnutella Daugiaplatformė GPL
Gnucleus Gnutella, Gnutella2 Windows GPL
iMesh FastTrack, eD2K, Gnutella, Gnutella2 Windows
KCeasy Ares, FastTrack, Gnutella, OpenFT Windows GPL
Kiwi Alpha Gnutella, Gnutella2 Windows
MLDonkey BitTorrent, Direct Connect, eD2K, FastTrack, Gnutella, Gnutella2,
Kad, OpenNap, SoulSeek, HTTP/FTP
Daugiaplatformė GPL
Morpheus NEO tinklas, Gnutella, Gnutella2, BitTorrent Windows
Napshare Key network, MUTE tinklas Linux, Windows GPL
Shareaza BitTorrent, eD2K, Gnutella, Gnutella2 Windows GPL
Zultrax Gnutella, ZEPP Windows

P2P architektūros modeliai[taisyti | redaguoti kodą]

Egzistuoja du pagrindiniai architektūrų modelių tipai:

Decentralizuoti:

  • Bet kuris mazgas veikia ir kaip klientas, ir kaip serveris.
  • Nėra centrinio serverio.

Hibridiniai:

  • Yra centrinis serveris, saugantis informaciją apie mazgus ir prireikus teikiantis informaciją.
  • Šis serveris nesaugo duomenų, kuriais mazgai nori dalintis tarpusavyje. Pavyzdžiui, mazgas informuoja serverį, kokius failus jis gali pateikti. Kitas mazgas kreipiasi į serverį, prašydamas šių duomenų. Serveris tiesiog nurodo, kur yra duomenis saugantis mazgas.

Galimos ir mišrios sistemos, tuo pat metu naudojančios abu modelius. Kai kada kartu naudojamas ir kliento - serverio modelis.

Grynomis P2P laikomos tik decentralizuota architektūra paremtos sistemos. Galima išskirti dvi pagrindines tokių architektūrų klases: bestruktūrės (unstructured P2P systems), pvz., Gnutella ir struktūrizuotos sistemas (structured P2P systems), žymiausi iš kurių yra Chord, P-Grid, Pastry.

Literatūra